Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Rstudio将数据帧保存为UTF-8编码且LF行以R结尾的.csv文件?_R_Csv_Encoding_Utf 8_Lf - Fatal编程技术网

如何使用Rstudio将数据帧保存为UTF-8编码且LF行以R结尾的.csv文件?

如何使用Rstudio将数据帧保存为UTF-8编码且LF行以R结尾的.csv文件?,r,csv,encoding,utf-8,lf,R,Csv,Encoding,Utf 8,Lf,我遇到了一个奇怪的情况: 我需要将数据帧保存到.csv文件UTF-8中,并以LF结尾。我正在Windows 10计算机上使用最新版本的R和Rstudio 我的第一次尝试是天真地做: write.csv(df, fileEncoding="UTF-8", eol="\n") 通过Notepad++检查,似乎编码是UTF-8,但是行的结尾是CRLF而不是LF。好的,让我们用记事本仔细检查一下:惊喜,惊喜,根据记事本,编码是ANSI。在这一点上,我感到困惑 在查看函数的文档后,我读到: CSV文件不

我遇到了一个奇怪的情况:

我需要将数据帧保存到.csv文件UTF-8中,并以LF结尾。我正在Windows 10计算机上使用最新版本的R和Rstudio

我的第一次尝试是天真地做:

write.csv(df, fileEncoding="UTF-8", eol="\n")
通过Notepad++检查,似乎编码是UTF-8,但是行的结尾是CRLF而不是LF。好的,让我们用记事本仔细检查一下:惊喜,惊喜,根据记事本,编码是ANSI。在这一点上,我感到困惑

在查看函数的文档后,我读到:

CSV文件不记录编码

我不是这方面的专家,所以我决定恢复并使用write.table将文件保存为简单的.txt文件,如下所示:

write.table(df, fileEncoding="UTF-8", eol="\n")
同样,上述结果相同。没有任何变化。我试过这些组合

write.csv(df)
write.table(df)
没有指定的编码,但没有更改。然后我将Rstudio中的默认编码设置为UTF-8和LF行结束(如下图所示)


然后再次运行测试。没有变化。我错过了什么

至少对我来说,这是个奇怪的问题。尽管如此,通过阅读的文档,我找到了解决方案。显然,在Windows上,要以Unix方式保存文件,必须打开文件的二进制连接,然后使用所需的eol保存文件:

f <- file("filename.csv", "wb")
write.csv(df, file=f, eol="\n")
close(f)
f