【问题标题】:Function to export workspace objects(data frames) to csv files将工作区对象(数据框)导出到 csv 文件的功能
【发布时间】:2011-08-24 11:14:33
【问题描述】:

我想将我的工作区中名称中包含字符串“obj”的数据帧批量导出到同名的 csv 文件中

想到了下面的代码,可惜没用。

for (i in ls(pattern="obj")){
write.csv2(i, paste(i,".csv", sep=""))
}

有什么想法吗?提前谢谢你

【问题讨论】:

  • 只是猜测,但是如果您有一堆以某种模式命名的东西,例如 obj1、obj2 等,那么最好将它们存储在一个列表中。然后你只需遍历列表而不是构造名称并使用'get'......
  • 你是对的。会做。谢谢!

标签: function r export-to-csv


【解决方案1】:

write.csv2 将对象而不是对象的名称作为其第一个参数。使用get 来解决这个问题。

write.csv2(get(i), paste(i,".csv", sep=""))

【讨论】:

  • 为了澄清,请尝试以下两行: write.csv2(x,file='foo.csv') 和 write.csv2("x",file='bar.csv') 。第二个版本不是你想要的,但它是你的原始代码所做的。
【解决方案2】:

您可以使用eval

eval(call("write.csv2", as.name(i), paste(i, ".csv", sep="")))

【讨论】:

  • 很花哨,但是当你六个月后回到代码时,你会记得它是做什么的吗?见library(fortunes); fortune("eval")
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 2019-11-10
  • 1970-01-01
  • 2017-10-16
相关资源
最近更新 更多