write_*()
系列函数是对 write.csv()
等类似函数的改进,因为它们的速度大约是 write.csv()
的两倍。与 write.csv()
不同,这些函数不包括行名称作为写入文件中的列。通用函数 output_column()
应用于每个变量以将列强制为合适的输出。
用法
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(),
path = deprecated(),
quote_escape = deprecated()
)
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(),
path = deprecated(),
quote_escape = deprecated()
)
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(),
path = deprecated(),
quote_escape = deprecated()
)
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(),
path = deprecated(),
quote_escape = deprecated()
)
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(),
path = deprecated(),
quote_escape = deprecated()
)
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(),
path = deprecated(),
quote_escape = deprecated()
)
参数
- x
-
要写入磁盘的数据帧或小块。
- file
-
要写入的文件或连接。
- delim
-
用于分隔值的分隔符。对于
write_delim()
默认为" "
,对于write_excel_csv()
默认为","
,对于write_excel_csv2()
默认为";"
。必须是单个字符。 - na
-
用于缺失值的字符串。默认为 NA。缺失值永远不会被引用;与
na
具有相同值的字符串将始终被引用。 - append
-
如果
FALSE
,将覆盖现有文件。如果TRUE
,将追加到现有文件。在这两种情况下,如果文件不存在,则会创建新文件。 - col_names
-
如果
FALSE
,列名将不会包含在文件顶部。如果TRUE
,将包含列名称。如果未指定,col_names
将采用给定append
的相反值。 - quote
-
如何处理包含需要引用的字符的字段。
-
needed
- 仅在需要时才引用值:如果它们包含分隔符、引号或换行符。 -
all
- 引用所有字段。 -
none
- 切勿引用字段。
-
- escape
-
当数据中存在引号时要使用的转义类型。
-
double
- 引号通过加倍来转义。 -
backslash
- 引号通过前面的反斜杠转义。 -
none
- 引号不会转义。
-
- eol
-
要使用的行结束符。最常见的是
"\n"
用于 Unix 样式换行符,或"\r\n"
用于 Windows 样式换行符。 - num_threads
-
读取和具体化向量时使用的线程数。如果您的数据在字段中包含换行符,解析器将自动强制仅使用单个线程。
- progress
-
显示进度条?默认情况下,它只会在交互式会话中显示,而不会在编织文档时显示。显示每 50,000 个值更新一次,并且仅在估计读取时间为 5 秒或更长时才会显示。可以通过将选项
readr.show_progress
设置为FALSE
来禁用自动进度条。 - path
- quote_escape
输出
因子是被迫的。使用 grisu3 算法将双精度数格式化为十进制字符串。POSIXct
值的格式为带有 UTC 时区的 ISO8601注意:本地或非 UTC 时区的 POSIXct
对象在写入前将转换为 UTC 时间。
所有列均编码为 UTF-8。 write_excel_csv()
和 write_excel_csv2()
还包括 UTF-8 Byte order mark,它向 Excel 指示 csv 是 UTF-8 编码的。
创建 write_excel_csv2()
和 write_csv2
是为了允许具有不同区域设置的用户使用默认设置保存 .csv 文件(例如,;
作为列分隔符,,
作为小数点分隔符)。这在一些欧洲国家很常见。
仅当值包含逗号、引号或换行符时才用引号引起来。
如果给出适当的扩展名,write_*()
函数将自动压缩输出。目前支持三种扩展:.gz
(用于 gzip 压缩)、.bz2
(用于 bzip2 压缩)和 .xz
(用于 lzma 压缩)。请参阅示例以获取更多信息。
参考
Florian Loitsch,使用整数快速准确地打印浮点数,PLDI '10,http://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
例子
# \dontshow{
.old_wd <- setwd(tempdir())
# }
# 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")
# \dontshow{
setwd(.old_wd)
# }
相关用法
- R readr with_edition 暂时更改活动阅读器版本
- R readr datasource 创建源对象。
- R readr melt_delim 返回分隔文件中每个标记的熔化数据(包括 csv 和 tsv)
- R readr read_rds 读/写 RDS 文件。
- R readr read_lines 从文件中读取/写入行
- R readr parse_number 灵活地解析数字
- R readr read_fwf 将固定宽度文件读入 tibble
- R readr read_builtin 从包中读取内置对象
- R readr Tokenizers 分词器。
- R readr melt_table 返回空格分隔文件中每个标记的熔化数据
- R readr date_names 创建或检索日期名称
- R readr type_convert 重新转换现有 DataFrame 中的字符列
- R readr locale 创建语言环境
- R readr parse_vector 解析字符向量。
- R readr read_delim 将分隔文件(包括 CSV 和 TSV)读入 tibble
- R readr format_delim 将 DataFrame 转换为分隔字符串
- R readr edition_get 检索当前活动版本
- R readr readr_example 获取 readr 示例的路径
- R readr melt_fwf 返回固定宽度文件中每个标记的熔化数据
- R readr count_fields 计算文件每一行中的字段数
- R readr read_table 将空格分隔的列读入 tibble
- R readr problems 检索解析问题
- R readr parse_guess 使用“最佳”类型进行解析
- R readr parse_datetime 解析日期/时间
- R readr read_file 读/写完整文件
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Write a data frame to a delimited file。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。