在R中将RDA写入CSV

时间:2015-09-04 12:30:10

标签: r csv rscript

我正在尝试编写一个脚本来按文件名加载RDA并将等效文件写成CSV格式。

它几乎就在那里(带有加载和写入)但输出CSV包含load()返回的字符串向量,而不是load引用的数据帧...

$ cat convert.r
#!/usr/bin/env Rscript

argv <- commandArgs(TRUE)
inFile <- toString(argv[1])
print(inFile)

outFile <- gsub(".rda$", ".csv", inFile)
print(outFile)

inData <- load(inFile)
write.csv(inData, file=outFile)

这是命令+输出......

/convert.r data.rda
[1] "data.rda"
[1] "data.csv"
[1] "table.data"

所以你可以看到它从参数中获取输入文件名,它创建了正确的输出文件名,但是inData是对名为table.data的全局对象的引用。当write.csv运行时,它只包含这个:

$ cat data.csv
"","x"
"1","table.data"

如何让write.csv从rda文件中获取数据帧?我知道如果RDA包含多个帧,目前存在风险 - 也许它应该遍历它们并执行file-frame.csv?!

1 个答案:

答案 0 :(得分:2)

显然,自己解决问题的最佳方法是公开提问。

答案是:get()

inData <- load(inFile)
write.csv(get(inData), file=outFile)

https://stackoverflow.com/a/6316461/224707greg-snow的答案