使用 writeLines 时避免在文件末尾出现空行

Avoid blank line at end of file when using writeLines

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

没有空行

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

不幸的是,有许多工具(尤其是 Windows 上的)无法正确处理此类文件并在末尾显示额外的一行。然而,这是这些工具的错误,而不是 R 的错误。因此,这不应该在 R 代码中修复。

作为安抚错误工具的 hack,唯一的办法是将 writeLinessep 参数设置为空字符串 '',并插入换行符 between 行手动(使用 paste)。

我有完全相同的担忧(虽然不同的网格),甚至你对接受答案的评论(康拉德)对我也不起作用。

我找到了答案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)