From d7d19772d446f119966ea6436c191cf10b3b08b8 Mon Sep 17 00:00:00 2001 From: Alex Peters <80283343+alexpeters1208@users.noreply.github.com> Date: Mon, 18 Sep 2023 19:00:45 -0500 Subject: [PATCH] Generate docs (#4512) * Add roxygen blocks to generate man pages * Add man pages * Remove autogenerated namespace directive * Make minimal changes * Remove Aggregation, upload TableHandle * Remove Aggregation --- R/rdeephaven/man/Client.Rd | 258 ++++++++++ R/rdeephaven/man/TableHandle.Rd | 863 ++++++++++++++++++++++++++++++++ 2 files changed, 1121 insertions(+) create mode 100644 R/rdeephaven/man/Client.Rd create mode 100644 R/rdeephaven/man/TableHandle.Rd diff --git a/R/rdeephaven/man/Client.Rd b/R/rdeephaven/man/Client.Rd new file mode 100644 index 00000000000..230f263c4b7 --- /dev/null +++ b/R/rdeephaven/man/Client.Rd @@ -0,0 +1,258 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/client_wrapper.R +\docType{class} +\name{Client} +\alias{Client} +\title{The Deephaven R Client} +\description{ +A Client is the entry point for interacting with the Deephaven server. +It is used to create new tables, import data to and export data from the server, +and run queries on the server. +} +\section{Methods}{ +\subsection{Public methods}{ +\itemize{ +\item \href{#method-Client-new}{\code{Client$new()}} +\item \href{#method-Client-initialize_for_xptr}{\code{Client$initialize_for_xptr()}} +\item \href{#method-Client-initialize_for_target}{\code{Client$initialize_for_target()}} +\item \href{#method-Client-empty_table}{\code{Client$empty_table()}} +\item \href{#method-Client-time_table}{\code{Client$time_table()}} +\item \href{#method-Client-open_table}{\code{Client$open_table()}} +\item \href{#method-Client-import_table}{\code{Client$import_table()}} +\item \href{#method-Client-ticket_to_table}{\code{Client$ticket_to_table()}} +\item \href{#method-Client-run_script}{\code{Client$run_script()}} +\item \href{#method-Client-close}{\code{Client$close()}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-new}{}}} +\subsection{Method \code{new()}}{ +Calls `initialize_for_xptr` if the first argument is an external pointer, and `initialize_for_target` if the +first argument is a string. In the latter case, the remaining keyword arguments are passed to `initialize_for_target`. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$new(...)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{...}}{Either an external pointer to an existing client connection, or a string denoting the address +of a running Deephaven server followed by keyword arguments to `initialize_from_target`.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-initialize_for_xptr}{}}} +\subsection{Method \code{initialize_for_xptr()}}{ +Initializes a Client object using a pointer to an existing client connection. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$initialize_for_xptr(xptr)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{xptr}}{External pointer to an existing client connection.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-initialize_for_target}{}}} +\subsection{Method \code{initialize_for_target()}}{ +Initializes a Client object and connects to a Deephaven server. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$initialize_for_target( + target, + auth_type = "anonymous", + username = "", + password = "", + auth_token = "", + session_type = "python", + use_tls = FALSE, + tls_root_certs = "", + int_options = list(), + string_options = list(), + extra_headers = list() +)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{target}}{String denoting the address of a Deephaven server, formatted as `"ip:port"`.} + +\item{\code{auth_type}}{String denoting the authentication type. Can be `"anonymous"`, `"basic"`, +or any custom-built authenticator supported by the server, such as `"io.deephaven.authentication.psk.PskAuthenticationHandler"`. +Default is `anonymous`.} + +\item{\code{username}}{String denoting the username, which only applies if `auth_type` is `basic`. +Username and password should not be used in conjunction with `auth_token`. Defaults to an empty string.} + +\item{\code{password}}{String denoting the password, which only applies if `auth_type` is `basic`. +Username and password should not be used in conjunction with `auth_token`. Defaults to an empty string.} + +\item{\code{auth_token}}{String denoting the authentication token. When `auth_type` +is `anonymous`, it will be ignored; when `auth_type` is `basic`, it must be +`"user:password"` or left blank; when `auth_type` is a custom-built authenticator, it must +conform to the specific requirement of that authenticator. This should not be used +in conjunction with `username` and `password`. Defaults to an empty string.} + +\item{\code{session_type}}{String denoting the session type supported on the server. +Currently, `python` and `groovy` are supported. Defaults to `python`.} + +\item{\code{use_tls}}{Whether or not to use a TLS connection. Defaults to `FALSE`.} + +\item{\code{tls_root_certs}}{String denoting PEM encoded root certificates to use for TLS connection, +or `""` to use system defaults. Only used if `use_tls == TRUE`. Defaults to system defaults.} + +\item{\code{int_options}}{List of name-value pairs for int-valued options to the underlying +grpc channel creation. Defaults to an empty list, which implies not using any channel options.} + +\item{\code{string_options}}{List of name-value pairs for string-valued options to the underlying +grpc channel creation. Defaults to an empty list, which implies not using any channel options.} + +\item{\code{extra_headers}}{List of name-value pairs for additional headers and values +to add to server requests. Defaults to an empty list, which implies not using any extra headers.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-empty_table}{}}} +\subsection{Method \code{empty_table()}}{ +Creates an empty table on the server with 'size' rows and no columns. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$empty_table(size)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{size}}{Non-negative integer specifying the number of rows for the new table.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +TableHandle reference to the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-time_table}{}}} +\subsection{Method \code{time_table()}}{ +Creates a ticking table on the server. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$time_table(period, start_time = "now")}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{period}}{ISO-8601-formatted string specifying the update frequency of the new table.} + +\item{\code{start_time}}{Optional ISO-8601-formatted string specifying the start time of the table. +Defaults to now.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +TableHandle reference to the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-open_table}{}}} +\subsection{Method \code{open_table()}}{ +Retrieves a reference to a named table on the server using its name. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$open_table(name)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{name}}{String denoting the name of the table to retrieve.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +TableHandle reference to the named table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-import_table}{}}} +\subsection{Method \code{import_table()}}{ +Imports a new table to the Deephaven server. Note that this new table is not automatically bound to +a variable name on the server. See `?TableHandle` for more information. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$import_table(table_object)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{table_object}}{R Data Frame, dplyr Tibble, Arrow Table, Arrow RecordBatchReader, or other supported table +containing the data to import to the server.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +TableHandle reference to the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-ticket_to_table}{}}} +\subsection{Method \code{ticket_to_table()}}{ +Retrieves a reference to a named table in the server using its Arrow Flight ticket. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$ticket_to_table(ticket)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{ticket}}{String denoting the Arrow Flight ticket.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +TableHandle reference to the table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-run_script}{}}} +\subsection{Method \code{run_script()}}{ +Runs a script on the server. The script must be in the language that the server console was started with. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$run_script(script)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{script}}{String containing the code to be executed on the server.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-Client-close}{}}} +\subsection{Method \code{close()}}{ +Closes the client connection. After this method is called, any further server calls will +be undefined and will likely result in an error. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{Client$close()}\if{html}{\out{
}} +} + +} +} diff --git a/R/rdeephaven/man/TableHandle.Rd b/R/rdeephaven/man/TableHandle.Rd new file mode 100644 index 00000000000..56d254873ad --- /dev/null +++ b/R/rdeephaven/man/TableHandle.Rd @@ -0,0 +1,863 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/table_handle_wrapper.R +\docType{class} +\name{TableHandle} +\alias{TableHandle} +\title{Deephaven Tables} +\description{ +A TableHandle holds a reference to a Deephaven Table on the server, and provides methods for operating on that table. +Note that TableHandles should not be instantiated directly by user code, but rather by server calls accessible from +the `Client` class. See `?Client` for more information. +} +\section{Methods}{ +\subsection{Public methods}{ +\itemize{ +\item \href{#method-TableHandle-new}{\code{TableHandle$new()}} +\item \href{#method-TableHandle-is_static}{\code{TableHandle$is_static()}} +\item \href{#method-TableHandle-bind_to_variable}{\code{TableHandle$bind_to_variable()}} +\item \href{#method-TableHandle-head}{\code{TableHandle$head()}} +\item \href{#method-TableHandle-tail}{\code{TableHandle$tail()}} +\item \href{#method-TableHandle-nrow}{\code{TableHandle$nrow()}} +\item \href{#method-TableHandle-ncol}{\code{TableHandle$ncol()}} +\item \href{#method-TableHandle-dim}{\code{TableHandle$dim()}} +\item \href{#method-TableHandle-merge}{\code{TableHandle$merge()}} +\item \href{#method-TableHandle-as_record_batch_reader}{\code{TableHandle$as_record_batch_reader()}} +\item \href{#method-TableHandle-as_arrow_table}{\code{TableHandle$as_arrow_table()}} +\item \href{#method-TableHandle-as_tibble}{\code{TableHandle$as_tibble()}} +\item \href{#method-TableHandle-as_data_frame}{\code{TableHandle$as_data_frame()}} +\item \href{#method-TableHandle-select}{\code{TableHandle$select()}} +\item \href{#method-TableHandle-view}{\code{TableHandle$view()}} +\item \href{#method-TableHandle-update}{\code{TableHandle$update()}} +\item \href{#method-TableHandle-update_view}{\code{TableHandle$update_view()}} +\item \href{#method-TableHandle-drop_columns}{\code{TableHandle$drop_columns()}} +\item \href{#method-TableHandle-where}{\code{TableHandle$where()}} +\item \href{#method-TableHandle-group_by}{\code{TableHandle$group_by()}} +\item \href{#method-TableHandle-ungroup}{\code{TableHandle$ungroup()}} +\item \href{#method-TableHandle-agg_by}{\code{TableHandle$agg_by()}} +\item \href{#method-TableHandle-agg_all_by}{\code{TableHandle$agg_all_by()}} +\item \href{#method-TableHandle-first_by}{\code{TableHandle$first_by()}} +\item \href{#method-TableHandle-last_by}{\code{TableHandle$last_by()}} +\item \href{#method-TableHandle-head_by}{\code{TableHandle$head_by()}} +\item \href{#method-TableHandle-tail_by}{\code{TableHandle$tail_by()}} +\item \href{#method-TableHandle-min_by}{\code{TableHandle$min_by()}} +\item \href{#method-TableHandle-max_by}{\code{TableHandle$max_by()}} +\item \href{#method-TableHandle-sum_by}{\code{TableHandle$sum_by()}} +\item \href{#method-TableHandle-abs_sum_by}{\code{TableHandle$abs_sum_by()}} +\item \href{#method-TableHandle-avg_by}{\code{TableHandle$avg_by()}} +\item \href{#method-TableHandle-w_avg_by}{\code{TableHandle$w_avg_by()}} +\item \href{#method-TableHandle-median_by}{\code{TableHandle$median_by()}} +\item \href{#method-TableHandle-var_by}{\code{TableHandle$var_by()}} +\item \href{#method-TableHandle-std_by}{\code{TableHandle$std_by()}} +\item \href{#method-TableHandle-percentile_by}{\code{TableHandle$percentile_by()}} +\item \href{#method-TableHandle-count_by}{\code{TableHandle$count_by()}} +\item \href{#method-TableHandle-cross_join}{\code{TableHandle$cross_join()}} +\item \href{#method-TableHandle-natural_join}{\code{TableHandle$natural_join()}} +\item \href{#method-TableHandle-exact_join}{\code{TableHandle$exact_join()}} +\item \href{#method-TableHandle-sort}{\code{TableHandle$sort()}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-new}{}}} +\subsection{Method \code{new()}}{ +Initializes a new TableHandle from an internal Deephaven TableHandle. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$new(table_handle)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{table_handle}}{Internal Deephaven TableHandle.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-is_static}{}}} +\subsection{Method \code{is_static()}}{ +Determines whether the table referenced by this TableHandle is static or not. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$is_static()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +TRUE if the table is static, or FALSE if the table is ticking. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-bind_to_variable}{}}} +\subsection{Method \code{bind_to_variable()}}{ +Binds the table referenced by this TableHandle to a variable on the server, so that it can be referenced by that name. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$bind_to_variable(name)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{name}}{Name for this table on the server.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-head}{}}} +\subsection{Method \code{head()}}{ +Creates a new table containing the first `n` rows of this table. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$head(n)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{n}}{Positive integer specifying the number of rows to return.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-tail}{}}} +\subsection{Method \code{tail()}}{ +Creates a new table containing the last `n` rows of this table. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$tail(n)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{n}}{Positive integer specifying the number of rows to return.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table consisting of the last n rows of the parent table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-nrow}{}}} +\subsection{Method \code{nrow()}}{ +Gets the number of rows in the table referenced by this TableHandle. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$nrow()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +The number of rows in the table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-ncol}{}}} +\subsection{Method \code{ncol()}}{ +Gets the number of columns in the table referenced by this TableHandle. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$ncol()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +The number of columns in the table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-dim}{}}} +\subsection{Method \code{dim()}}{ +Gets the dimensions of the table referenced by this TableHandle. Equivalent to c(nrow, ncol). +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$dim()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +A vector of length 2, where the first element is the number of rows in the table and the second +element is the number of columns in the table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-merge}{}}} +\subsection{Method \code{merge()}}{ +Merges several tables into one table on the server. The tables must have the same schema as this table, and can +be supplied as a list of TableHandles, any number of TableHandles, or a mix of both. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$merge(...)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{...}}{Arbitrary number of TableHandles or vectors of TableHandles with a schema matching this table.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-as_record_batch_reader}{}}} +\subsection{Method \code{as_record_batch_reader()}}{ +Converts the table referenced by this TableHandle to an Arrow RecordBatchStreamReader. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$as_record_batch_reader()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +An Arrow RecordBatchStreamReader constructed from the data of this TableHandle. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-as_arrow_table}{}}} +\subsection{Method \code{as_arrow_table()}}{ +Converts the table referenced by this TableHandle to an Arrow Table. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$as_arrow_table()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +An Arrow Table constructed from the data of this TableHandle. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-as_tibble}{}}} +\subsection{Method \code{as_tibble()}}{ +Converts the table referenced by this TableHandle to a dplyr tibble. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$as_tibble()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +A dplyr tibble constructed from the data of this TableHandle. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-as_data_frame}{}}} +\subsection{Method \code{as_data_frame()}}{ +Converts the table referenced by this TableHandle to an R data frame. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$as_data_frame()}\if{html}{\out{
}} +} + +\subsection{Returns}{ +An R data frame constructed from the data of this TableHandle. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-select}{}}} +\subsection{Method \code{select()}}{ +Creates a new in-memory table that includes one column for each formula. +If no formula is specified, all columns will be included. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$select(formulas = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{formulas}}{String or list of strings denoting the column formulas.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-view}{}}} +\subsection{Method \code{view()}}{ +Creates a new formula table that includes one column for each formula. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$view(formulas = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{formulas}}{String or list of strings denoting the column formulas.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-update}{}}} +\subsection{Method \code{update()}}{ +Creates a new table containing a new, in-memory column for each formula. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$update(formulas = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{formulas}}{String or list of strings denoting the column formulas.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-update_view}{}}} +\subsection{Method \code{update_view()}}{ +Creates a new table containing a new formula column for each formula. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$update_view(formulas = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{formulas}}{String or list of strings denoting the column formulas.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-drop_columns}{}}} +\subsection{Method \code{drop_columns()}}{ +Creates a new table that has the same number of rows as this table, +but omits the columns specified in `cols`. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$drop_columns(cols = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{cols}}{String or list of strings denoting the names of the columns to drop.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-where}{}}} +\subsection{Method \code{where()}}{ +Creates a new table containing only the rows meeting the filter condition. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$where(filter)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{filter}}{String denoting the filter condition.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-group_by}{}}} +\subsection{Method \code{group_by()}}{ +Creates a new table containing grouping columns and grouped data, with column content is grouped into arrays. +If no group-by column is given, the content of each column is grouped into its own array. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$group_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-ungroup}{}}} +\subsection{Method \code{ungroup()}}{ +Creates a new table in which array columns from the source table are unwrapped into separate rows. +The ungroup columns should be of array types. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$ungroup(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to ungroup.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-agg_by}{}}} +\subsection{Method \code{agg_by()}}{ +Creates a new table containing grouping columns and grouped data. The resulting grouped data is defined by the +aggregation(s) specified. See `?Aggregations` for more information. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$agg_by(aggs, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{aggs}}{Aggregation or list of Aggregations to perform on non-grouping columns.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-agg_all_by}{}}} +\subsection{Method \code{agg_all_by()}}{ +Creates a new table containing grouping columns and grouped data. The resulting grouped data is defined by the +aggregation(s) specified. See `?Aggregations` for more information. +This method applies the aggregation to all columns of the table, so it can only +accept one aggregation at a time. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$agg_all_by(agg, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{agg}}{Aggregation to perform on non-grouping columns.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-first_by}{}}} +\subsection{Method \code{first_by()}}{ +Creates a new table containing the first row of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$first_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-last_by}{}}} +\subsection{Method \code{last_by()}}{ +Creates a new table containing the last row of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$last_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-head_by}{}}} +\subsection{Method \code{head_by()}}{ +Creates a new table containing the first `num_rows` rows of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$head_by(num_rows, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{num_rows}}{Positive integer specifying the number of rows to return.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-tail_by}{}}} +\subsection{Method \code{tail_by()}}{ +Creates a new table containing the last `num_rows` rows of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$tail_by(num_rows, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{num_rows}}{Positive integer specifying the number of rows to return.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-min_by}{}}} +\subsection{Method \code{min_by()}}{ +Creates a new table containing the column-wise minimum of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$min_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-max_by}{}}} +\subsection{Method \code{max_by()}}{ +Creates a new table containing the column-wise maximum of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$max_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-sum_by}{}}} +\subsection{Method \code{sum_by()}}{ +Creates a new table containing the column-wise sum of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$sum_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-abs_sum_by}{}}} +\subsection{Method \code{abs_sum_by()}}{ +Creates a new table containing the column-wise absolute sum of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$abs_sum_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-avg_by}{}}} +\subsection{Method \code{avg_by()}}{ +Creates a new table containing the column-wise average of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$avg_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-w_avg_by}{}}} +\subsection{Method \code{w_avg_by()}}{ +Creates a new table containing the column-wise weighted average of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$w_avg_by(wcol, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{wcol}}{String denoting the name of the column to use as weights.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-median_by}{}}} +\subsection{Method \code{median_by()}}{ +Creates a new table containing the column-wise median of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$median_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-var_by}{}}} +\subsection{Method \code{var_by()}}{ +Creates a new table containing the column-wise variance of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$var_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-std_by}{}}} +\subsection{Method \code{std_by()}}{ +Creates a new table containing the column-wise standard deviation of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$std_by(by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-percentile_by}{}}} +\subsection{Method \code{percentile_by()}}{ +Creates a new table containing the column-wise percentile of each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$percentile_by(percentile, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{percentile}}{Numeric scalar between 0 and 1 denoting the percentile to compute.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-count_by}{}}} +\subsection{Method \code{count_by()}}{ +Creates a new table containing the number of rows in each group. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$count_by(col, by = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{col}}{String denoting the name of the new column to hold the counts of each group.} + +\item{\code{by}}{String or list of strings denoting the names of the columns to group by.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-cross_join}{}}} +\subsection{Method \code{cross_join()}}{ +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$cross_join(table, on = character(), joins = character())}\if{html}{\out{
}} +} + +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-natural_join}{}}} +\subsection{Method \code{natural_join()}}{ +Creates a new table containing all the rows and columns of this table, plus additional columns containing data +from the right table. For columns appended to the left table (joins), row values equal the row values from the +right table where the key values in the left and right tables are equal. +If there is no matching key in the right table, appended row values are NULL. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$natural_join(table, on = character(), joins = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{table}}{TableHandle referencing the table to join with.} + +\item{\code{on}}{String or list of strings denoting the names of the columns to join on.} + +\item{\code{joins}}{String or list of strings denoting the names of the columns to add from `table`.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-exact_join}{}}} +\subsection{Method \code{exact_join()}}{ +Creates a new table containing all the rows and columns of this table, plus additional columns containing data +from the right table. For columns appended to the left table (joins), row values equal the row values from the +right table where the key values in the left and right tables are equal. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$exact_join(table, on = character(), joins = character())}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{table}}{TableHandle referencing the table to join with.} + +\item{\code{on}}{String or list of strings denoting the names of the columns to join on.} + +\item{\code{joins}}{String or list of strings denoting the names of the columns to add from `table`.} +} +\if{html}{\out{
}} +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-TableHandle-sort}{}}} +\subsection{Method \code{sort()}}{ +Creates a new table containing all the rows and columns of this table, sorted by the specified columns. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{TableHandle$sort(order_by, descending = FALSE, abs_sort = FALSE)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{order_by}}{String or list of strings denoting the names of the columns to sort by.} + +\item{\code{descending}}{Boolean or list of booleans denoting whether to sort in descending order. +If a list is supplied, it must be the same length as `order_by`.} + +\item{\code{abs_sort}}{Boolean or list of booleans denoting whether to sort by absolute value. +If a list is supplied, it must be the same length as `order_by`.} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +A TableHandle referencing the new table. +} +} +}