R:使用 cat() 获取类似 Unix 的换行符 LF 写入文件
Posted
技术标签:
【中文标题】R:使用 cat() 获取类似 Unix 的换行符 LF 写入文件【英文标题】:R: Getting Unix-like linebreak LF writing files with cat() 【发布时间】:2015-12-30 15:32:06 【问题描述】:我尝试在 Windows 7 / R 3.2.2 x64 下将字符向量写入文本文件,并且我想要 unix LF - 而不是 Windows CRLF:
v <- c("a","b","c")
cat(nl,file="textfile.txt",sep="\n")
写
> a[CRLF]
> b[CRLF]
> c[CRLF]
cat(paste(nl,sep="\n",collapse="\n"),file="t2.txt")
写
> a[CRLF]
> b[CRLF]
> c
我也尝试过 write.table(eol="\n") - 不成功,因为它似乎在内部使用 cat。
我已经寻找其他解决方法; 我试图找到某事。在R\src\main\scan.c中,找到相关代码在第387ff行。
任何知道如何在我的输出文件中获得类似 UNIX 的 LF 的人?
【问题讨论】:
【参考方案1】:尝试以“二进制”模式(而不是“文本”模式)打开文件连接,以防止系统依赖的行尾编码:
v <- c("a","b","c")
f <- file("textfile.txt", open="wb")
cat(v,file=f,sep="\n")
close(f)
【讨论】:
【参考方案2】:基于@xb 的回答
converter <- function(infile)
print(infile)
txt <- readLines(infile)
f <- file(infile, open="wb")
cat(txt, file=f, sep="\n")
close(f)
【讨论】:
以上是关于R:使用 cat() 获取类似 Unix 的换行符 LF 写入文件的主要内容,如果未能解决你的问题,请参考以下文章