在R中:是否可以避免在writeLines生成的文本文件末尾有一个空行?如果没有,是否还有其他方法可以从R中生成文本文件而不在末尾有空行?
答案 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)