This function exports a data frame or matrix into a file with file format based on the file extension (or the manually specified format, if format is specified).
The output file can be to a compressed directory, simply by adding an appropriate additional extensiont to the file argument, such as: “mtcars.csv.tar”, “mtcars.csv.zip”, or “mtcars.csv.gz”.
- Comma-separated data (.csv), using - data.table::fwrite()
 
- Pipe-separated data (.psv), using - data.table::fwrite()
 
- Tab-separated data (.tsv), using - data.table::fwrite()
 
- SAS (.sas7bdat), using - haven::write_sas().
 
- SAS XPORT (.xpt), using - haven::write_xpt().
 
- SPSS (.sav), using - haven::write_sav()
 
- SPSS compressed (.zsav), using - haven::write_sav()
 
- Stata (.dta), using - haven::write_dta(). Note that variable/column names containing dots (.) are not allowed and will produce an error.
 
- Excel (.xlsx), using - writexl::write_xlsx().- xcan also be a list of data frames; the list entry names are used as sheet names.
 
- R syntax object (.R), using - base::dput()(by default) or- base::dump()(if- format = 'dump')
 
- Saved R objects (.RData,.rda), using - base::save(). In this case,- xcan be a data frame, a named list of objects, an R environment, or a character vector containing the names of objects if a corresponding- envirargument is specified.
 
- Serialized R objects (.rds), using - base::saveRDS(). In this case,- xcan be any serializable R object.
 
- Serialized R objects (.qs), using - qs::qsave(), which is
significantly faster than .rds. This can be any R
object (not just a data frame).
 
- Serialized R objects (.qs2), using - qs2::qs_save(). This is the future-proof successor to using (.qs).
 
- "XBASE" database files (.dbf), using - foreign::write.dbf()
 
- Weka Attribute-Relation File Format (.arff), using - foreign::write.arff()
 
- Fixed-width format data (.fwf), using - utils::write.table()with- row.names = FALSE,- quote = FALSE, and- col.names = FALSE
 
- CSVY (CSV with a YAML metadata header) using - data.table::fwrite().
 
- Apache Arrow Parquet (.parquet), using - nanoparquet::write_parquet()
 
- Feather R/Python interchange format (.feather), using - arrow::write_feather()
 
- Fast storage (.fst), using - fst::write.fst()
 
- JSON (.json), using - jsonlite::toJSON(). In this case,- xcan be a variety of R objects, based on class mapping conventions in this paper: https://arxiv.org/abs/1403.2805.
 
- Matlab (.mat), using - rmatio::write.mat()
 
- OpenDocument Spreadsheet (.ods, .fods), using - readODS::write_ods()or- readODS::write_fods().
 
- HTML (.html), using a custom method based on - xml2::xml_add_child()to create a simple HTML table and- xml2::write_xml()to write to disk.
 
- XML (.xml), using a custom method based on - xml2::xml_add_child()to create a simple XML tree and- xml2::write_xml()to write to disk.
 
- YAML (.yml), using - yaml::write_yaml(), default to write the content with UTF-8. Might not work on some older systems, e.g. default Windows locale for R <= 4.2.
 
- Clipboard export (on Windows and Mac OS), using - utils::write.table()with- row.names = FALSE
 
When exporting a data set that contains label attributes (e.g., if imported from an SPSS or Stata file) to a plain text file, characterize() can be a useful pre-processing step that records value labels into the resulting file (e.g., export(characterize(x), "file.csv")) rather than the numeric values.