【问题标题】:Adding columns to multiple dataframes via loop通过循环将列添加到多个数据帧
【发布时间】:2015-10-02 18:08:40
【问题描述】:

我有几个数据框,想添加带有循环的列。目前代码如下所示:

FR1$MONTH<-'2015-01'
FR2$MONTH<-'2015-02'
FR3$MONTH<-'2015-03'
FR4$MONTH<-'2015-04'

我尝试了以下方法:

for (i in 1:12) {
   assign(paste("FR",i,$,"MONTH",sep=""),paste("2015-",i,sep=""))

}

不幸的是,它不起作用。

谁能告诉我我的尝试出了什么问题,甚至更好:如何正确地做到这一点,因为我怀疑循环不是最好的解决方案。

【问题讨论】:

  • 这个问题是可以回答的,但我会停止这种糟糕的 R 编码方法,即在全球环境中传播大量数据帧,而不是将它们放在一个列表中。

标签: r loops dataframe


【解决方案1】:

嗯,一个会引发错误的问题是,'$' 应该在第一次 paste() 调用中的引号内。

不过,我会尝试:

eval(parse(text = paste0("FR", i, "$MONTH &lt;- 2015-", i)))

在你的循环中。您可能希望在需要时使用ifelse() 来获取月份中的 0。

我赞同上校关于将您的 data.frames 保存在其他数据结构中的评论。

【讨论】:

  • 谢谢。 eval(parse()) 工作。之后,我通过将框架放入列表中进行了尝试。你是对的,这似乎是更好的解决方案。谢谢!
猜你喜欢
  • 2019-03-02
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多