在R中创建空的csv文件

sin*_*sse 11 csv r

我有一个R脚本,它在多个数据集上运行一组函数,并创建一组浓度响应模型.我想要做的是将模型参数和其他结果保存到csv文件中.

我的计划是让脚本创建一个空的csv文件,然后随着脚本的进行,结果将附加到该csv文件.每次运行脚本时,我都希望覆盖结果.

我试过使用创建一个空文件

system("copy /y NUL results.csv > NUL")
Run Code Online (Sandbox Code Playgroud)

创建文件,但不创建该文件.copy/y NUL results.csv > NUL直接在Windows终端中运行时,此命令(即)可正常工作.

我错过了一些简单的事吗?系统是Windows XP.

谢谢大家!

Jos*_*ien 19

有什么问题file.create(),可以跨操作系统移植吗?

file.create("my.csv")
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)

然后你可以附加到文件,例如使用append=TRUE参数write.table(),也许像这样:

df <- data.frame(a=1:4, b=4:1)
write.table(df, file="my.csv", sep=",", row.names=FALSE, append=TRUE)
write.table(df, file="my.csv", sep=",", row.names=FALSE, 
            col.names=FALSE, append=TRUE)
Run Code Online (Sandbox Code Playgroud)

编辑如果您要对每个文件进行大量写入操作,则可以节省大量时间来打开与文件的连接一次,并且只有在完成后才关闭它.如果不是这样,上面的方法就可以了.

  • 另外,尝试`apropos("file \\.")`来查看基础R中可用的一些其他文件操作工具. (4认同)

Woj*_*ala 5

因为它是 shell 命令,所以你应该使用 shell 而不是 system。

shell("copy /y NUL results.csv > NUL")
Run Code Online (Sandbox Code Playgroud)

编辑。更便携的解决方案:

cat(NULL,file="results.csv")
Run Code Online (Sandbox Code Playgroud)

  • 这不能跨操作系统移植,从而带走了 R 的隐藏宝藏之一。 (2认同)