These functions are used to download a Box file, specified by file_id
, then
attempt to parse its contents into memory as an R object. For
example, you may wish to read a Box CSV file as a data.frame
.
box_read( file_id, type = NULL, version_id = NULL, version_no = NULL, read_fun = rio::import, ... ) box_read_csv(file_id, ...) box_read_tsv(file_id, ...) box_read_json(file_id, ...) box_read_excel(file_id, ...) box_read_rds(file_id, ...)
file_id |
|
---|---|
type |
|
version_id |
|
version_no |
|
read_fun |
|
... | Other arguments passed to |
Object returned by function read_fun
.
This is a two-step process. The first is to download the contents
of the file, the second is to parse those contents into an R object.
The default parsing-function is rio::import()
.
In addition to box_read()
, some specific helpers are
provided:
box_read_csv()
parse a remote CSV file into a data.frame
. Default
read-function is rio::import()
with format = "csv"
, which uses data.table::fread()
if available,
and utils::read.csv()
if not. Pass the argument fread = FALSE
to ...
to always use utils::read.csv()
.
box_read_tsv()
parse a remote TSV file into a data.frame
. Default
read-function is rio::import()
with format = "tsv"
, which uses data.table::fread()
if available,
and utils::read.delim()
if not. Pass the argument fread = FALSE
to ...
to always use utils::read.delim()
.
box_read_json()
parse a remote JSON file into a R object. Default
read-function is jsonlite::fromJSON()
.
box_read_excel()
parse a remote Microsoft Excel file into a data.frame
. Default
read-function is rio::import()
with format = "excel"
, which uses readxl::read_excel()
by default.
Pass the argument readxl = FALSE
to ...
to use openxlsx::read.xlsx()
instead.
box_read_rds()
parse an RDS file into a R object. Uses readRDS()
.
In rio (0.5.18) there was a change in how JSON files are processed by
rio::import()
, a non-data.frame
object stored in JSON is no longer coerced
into a data.frame
. The old behavior would produce unexpected results or fatal errors
if the stored object was not a data.frame
. The new behavior is closer to that
of the underlying function jsonlite::fromJSON()
and similar to the behavior for RDS files.
In keeping with the spirit of jsonlite
, box_read_json()
has been
modified to call jsonlite::fromJSON()
directly, which by-passes the old
"undesirable" behavior of rio
(< 0.5.18). If you are using the current CRAN
release of rio
(0.5.16) you should use jsonlite::read_json()
to avoid these issues.