37.关于readr如何写入文件

2021-08-20  本文已影响0人  心惊梦醒

【上一篇: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三种格式的压缩。

【上一篇:36.关于readr如何解析文件】
【下一篇:38.读取其他类型的数据】

上一篇下一篇

猜你喜欢

热点阅读