The write_*() family of functions are an improvement to analogous function such
as write.csv() because they are approximately twice as fast. Unlike write.csv(),
these functions do not include row names as a column in the written file.
A generic function, output_column(), is applied to each variable
to coerce columns to suitable output.
Usage
write_delim(
x,
file,
delim = " ",
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)
write_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)
write_csv2(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = c("needed", "all", "none"),
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)
write_excel_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
delim = ",",
quote = "all",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)
write_excel_csv2(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
delim = ";",
quote = "all",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)
write_tsv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote = "none",
escape = c("double", "backslash", "none"),
eol = "\n",
num_threads = readr_threads(),
progress = show_progress()
)Arguments
- x
A data frame or tibble to write to disk.
- file
File or connection to write to.
- delim
Delimiter used to separate values. Defaults to
" "forwrite_delim(),","forwrite_excel_csv()and";"forwrite_excel_csv2(). Must be a single character.- na
String used for missing values. Defaults to NA. Missing values will never be quoted; strings with the same value as
nawill always be quoted.- append
If
FALSE, will overwrite existing file. IfTRUE, will append to existing file. In both cases, if the file does not exist a new file is created.- col_names
If
FALSE, column names will not be included at the top of the file. IfTRUE, column names will be included. If not specified,col_nameswill take the opposite value given toappend.- quote
How to handle fields which contain characters that need to be quoted.
needed- Values are only quoted if needed: if they contain a delimiter, quote, or newline.all- Quote all fields.none- Never quote fields.
- escape
The type of escape to use when quotes are in the data.
double- quotes are escaped by doubling them.backslash- quotes are escaped by a preceding backslash.none- quotes are not escaped.
- eol
The end of line character to use. Most commonly either
"\n"for Unix style newlines, or"\r\n"for Windows style newlines.- num_threads
Number of threads to use when reading and materializing vectors. If your data contains newlines within fields the parser will automatically be forced to use a single thread only.
- progress
Display a progress bar? By default it will only display in an interactive session and not while executing in an RStudio notebook chunk. The display of the progress bar can be disabled by setting the environment variable
VROOM_SHOW_PROGRESSto"false".
Output
Factors are coerced to character. Doubles are formatted to a decimal string
using the grisu3 algorithm. POSIXct values are formatted as ISO8601 with a
UTC timezone Note: POSIXct objects in local or non-UTC timezones will be
converted to UTC time before writing.
All columns are encoded as UTF-8. write_excel_csv() and write_excel_csv2() also include a
UTF-8 Byte order mark
which indicates to Excel the csv is UTF-8 encoded.
write_excel_csv2() and write_csv2 were created to allow users with
different locale settings to save .csv files using their default settings
(e.g. ; as the column separator and , as the decimal separator).
This is common in some European countries.
Values are only quoted if they contain a comma, quote or newline.
The write_*() functions will automatically compress outputs if an appropriate extension is given.
Three extensions are currently supported: .gz for gzip compression, .bz2 for bzip2 compression and
.xz for lzma compression. See the examples for more information.
References
Florian Loitsch, Printing Floating-Point Numbers Quickly and Accurately with Integers, PLDI '10, http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
Examples
# If only a file name is specified, write_()* will write
# the file to the current working directory.
write_csv(mtcars, "mtcars.csv")
write_tsv(mtcars, "mtcars.tsv")
# If you add an extension to the file name, write_()* will
# automatically compress the output.
write_tsv(mtcars, "mtcars.tsv.gz")
write_tsv(mtcars, "mtcars.tsv.bz2")
write_tsv(mtcars, "mtcars.tsv.xz")
