【问题标题】:Writing an RDA to CSV in R在 R 中将 RDA 写入 CSV
【发布时间】: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?!

【问题讨论】:

    标签: r csv rscript


    【解决方案1】:

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

    答案是:get()

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

    (在https://stackoverflow.com/a/6316461/224707greg-snow 上找到答案)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 2019-09-20
      • 2018-09-05
      • 2018-06-15
      • 1970-01-01
      • 2019-07-20
      • 2011-06-01
      相关资源
      最近更新 更多