Inherited methods
Method new()
Creates a backend for a dplyr::tbl()
object.
Usage
DataBackendDplyr$new(
data,
primary_key,
strings_as_factors = TRUE,
connector = NULL
)
Arguments
data
(dplyr::tbl()
)
The data object.
Instead of calling the constructor yourself, you can call mlr3::as_data_backend()
on a dplyr::tbl()
.
Note that only objects of class "tbl_lazy"
will be converted to a DataBackendDplyr
(this includes all connectors from dbplyr).
Local "tbl"
objects such as tibbles
will converted to a
DataBackendDataTable.
primary_key
(character(1)
)
Name of the primary key column.
strings_as_factors
(logical(1)
|| character()
)
Either a character vector of column names to convert to factors, or a single logical flag:
if FALSE
, no column will be converted, if TRUE
all string columns (except the primary key).
For conversion, the backend is queried for distinct values of the respective columns
on construction and their levels are stored in $levels
.
connector
(function())\cr If not
NULL`, a function which re-connects to the database in case the connection has become invalid.
Database connections can become invalid due to timeouts or if the backend is serialized
to the file system and then de-serialized again.
This round trip is often performed for parallelization, e.g. to send the objects to remote workers.
DBI::dbIsValid()
is called to validate the connection.
The function must return just the connection, not a dplyr::tbl()
object!
Note that this this function is serialized together with the backend, including
possible sensitive information such as login credentials.
These can be retrieved from the stored mlr3::DataBackend/mlr3::Task.
To protect your credentials, it is recommended to use the secret package.
Returns a slice of the data.
Calls dplyr::filter()
and dplyr::select()
on the table and converts it to a data.table::data.table()
.
The rows must be addressed as vector of primary key values, columns must be referred to via column names.
Queries for rows with no matching row id and queries for columns with no matching
column name are silently ignored.
Rows are guaranteed to be returned in the same order as rows
, columns may be returned in an arbitrary order.
Duplicated row ids result in duplicated rows, duplicated column names lead to an exception.
Usage
DataBackendDplyr$data(rows, cols, data_format = "data.table")
cols
character()
Column names.
data_format
(character(1)
)
Desired data format, e.g. "data.table"
or "Matrix"
.
Retrieve the first n
rows.
Usage
DataBackendDplyr$head(n = 6L)
Arguments
n
(integer(1)
)
Number of rows.
Method distinct()
Returns a named list of vectors of distinct values for each column
specified. If na_rm
is TRUE
, missing values are removed from the
returned vectors of distinct values. Non-existing rows and columns are
silently ignored.
Usage
DataBackendDplyr$distinct(rows, cols, na_rm = TRUE)
cols
character()
Column names.
na_rm
logical(1)
Whether to remove NAs or not.
Returns
Named list()
of distinct values.
Method missings()
Returns the number of missing values per column in the specified slice
of data. Non-existing rows and columns are silently ignored.
Usage
DataBackendDplyr$missings(rows, cols)
cols
character()
Column names.
Returns
Total of missing values per column (named numeric()
).