使用writeLines时,避免在文件末尾留空行

时间:2015-02-03 21:15:52

标签: r text

在R中:是否可以避免在writeLines生成的文本文件末尾有一个空行?如果没有,是否还有其他方法可以从R中生成文本文件而不在末尾有空行?

2 个答案:

答案 0 :(得分:4)

没有空行。

R(正确)以'\n'(或Windows上的'\r\n')结束每一行。换句话说,文件由行组成,每行以换行符结束。

不幸的是,有许多工具(特别是在Windows上)不正确地处理这些文件并在最后显示一个额外的行。但是,这是这些工具的错,而不是R。因此,这不应该在R代码中修复。

作为安抚错误工具的黑客,唯一的办法就是将sep的{​​{1}}参数设置为空字符串writeLines,然后插入换行符手动行(使用'')。

答案 1 :(得分:0)

我有完全相同的关注点(尽管网格不同),甚至您对接受答案的评论(由Konrad撰写)对我也不起作用。

我找到了答案here,下面是完整的代码:

fileConn = file("mytext.txt")
writeLines(c("line1", "line2", "line3"), sep="\n", fileConn)

#now connect to UNIX server and upload your file
library(ssh)
session=ssh_connect("user@server.com")
scp_upload(session, files="mytext.txt")

#Here is the trick, convert all the Windows extra chars to unix
ssh_exec_wait(session, command="dos2unix mytext.txt")

#Then start your Grid job
ssh_exec_wait(session, command="sbatch mytext.txt")

ssh_disconnect(session)