【发布时间】:2018-11-04 16:35:49
【问题描述】:
a <- data.frame(x = c(1, 2))
b <- data.frame(x = c(3, 4))
for (df in list(a, b)) {
print(df)
df$y <- c(5, 6)
}
每个数据框都能正确打印出来,但添加一个额外的列会失败。
广泛的网络搜索建议类似
lapply(list(a, b), function(df){
df$y <- c(5, 6)
})
但这对我没有帮助。
我也很感兴趣的是,为什么for 循环中的打印语句有效,但添加y 列失败。
这让我很惊讶。
【问题讨论】:
-
无法理解您想要的输出内容。你能详细说明一下吗?
-
通常,当您要编辑多个对象时,您还希望将它们存储在一个列表中。例如。
my_list <- list(a = a, b = b)。然后你可以随心所欲地做my_list <- lapply(my_list, ...)。
标签: r loops for-loop apply lapply