37.关于readr如何写入文件
【上一篇:36.关于readr如何解析文件】
【下一篇:38.读取其他类型的数据】
其实readr写入磁盘的函数有一个系列,write_系列,包含的函数包括:write_delim()、write_csv()、write_csv2()、write_excel_csv()、write_excel_csv2()、write_tsv()。
write_()系列函数是write.()系列函数的改进,前者速度是后者的两倍,且前者不会将行名输出到文件中(对tibble来说也很好理解,tibble的行名是固定的,且不能修改,所以输出的时候当然也不需要额外输出了。)
write_*()系列函数的参数大致是相同的,具体每个函数有哪些需要具体看。例如:
write_delim(
x,
file,
delim = " ",
na = "NA",
append = FALSE,
col_names = !append,
quote_escape = "double",
eol = "\n",
path = deprecated()
)
重要参数有:
x:要回写到磁盘的数据框或tibble。
file:输出文件的路径。如果文件不存在,会创建新文件。
na:用来表示缺失值的字符串,默认是NA。缺失值从不会被quoted,与NA相同的字符串会加引号来标注。
append:如果为FALSE,将覆盖file;如果是TRUE,则会直接追加到已存在的文件中。
delim:输出文件中的列分隔符,write_delim()默认是空格,write_excel_scv()默认是逗号,write_excle_csv2()默认是分号。必须是单个字符。
其他参数:
col_names:FALSE表示输出文件第一行包含列名字,TRUE表示输出文件中不包含列名字。如果不指定,默认是!append。
quote_escape:用来quote 值得转义字符的类型,默认是双引号(double,也是Excle期望的格式)、还可以是反斜杠(backslash)或none(也可以设置为FALSE,与none的意义是一样的)。
eol:要是用的行尾字符,默认是\n。"\n"是Unix风格的新行,"\r\n"是Windows风格的新行。
path:废弃了,直接用file参数指定路径+文件名就可以。
write_*()函数回写到磁盘的时候,默认是UTF-8编码,以ISO8601格式保存日期和时间。写出到Excle文件(write_excle_csv()、write_excle_csv2())中时,会在文件开始写入一个特殊字符(byte order mark),告诉Excle csv是UTF-8编码的。
因子会强制成字符输出;doubles使用grisu3算法格式化为十进制字符串;在local或非UTC时区的POSIXct对象将在写入之前转换为UTC时间;只有包含逗号、引号或换行符的值才用quote括起来(可以是双引号、反斜杠);输出文件也支持.gz、.bz2、.xz三种格式的压缩。