【发布时间】:2015-11-30 14:47:36
【问题描述】:
我正在尝试编写一个脚本来通过文件名加载 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?!
【问题讨论】: