Wraps a DataBackend around data. mlr3 ships with methods for data.frame (converted to a DataBackendDataTable and Matrix from package Matrix (converted to a DataBackendMatrix).

Additional methods are implemented in the package mlr3db, e.g. to connect to real DBMS like PostgreSQL (via dbplyr) or DuckDB (via DBI/duckdb).

# S3 method for data.frame
as_data_backend(data, primary_key = NULL, keep_rownames = FALSE, ...)

# S3 method for Matrix
as_data_backend(data, primary_key = NULL, dense = NULL, ...)

as_data_backend(data, primary_key = NULL, ...)



Data to create a DataBackend from. For a data.frame() (this includes tibble() from tibble and data.table::data.table()), a DataBackendDataTable is created. For objects of type Matrix (from package Matrix), a DataBackendMatrix is returned. See methods("as_data_backend") for all possible input formats.


(character(1) | integer())
Name of the primary key column, or integer vector of row ids.


(logical(1) | character(1))
If TRUE or a single string, keeps the row names of data as a new column. The column is named like the provided string, defaulting to "..rownames" for keep_rownames == TRUE. Note that the created column will be used as a regular feature by the task unless you manually change the column role. Also see data.table::as.data.table().


Additional arguments passed to the respective DataBackend method.


(data.frame()). Dense data.



See also


# create a new backend using the iris data: as_data_backend(iris)
#> <DataBackendDataTable> (150x6) #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species ..row_id #> 5.1 3.5 1.4 0.2 setosa 1 #> 4.9 3.0 1.4 0.2 setosa 2 #> 4.7 3.2 1.3 0.2 setosa 3 #> 4.6 3.1 1.5 0.2 setosa 4 #> 5.0 3.6 1.4 0.2 setosa 5 #> 5.4 3.9 1.7 0.4 setosa 6 #> [...] (144 rows omitted)