对于如下所示的数据框,我想使用 for 循环遍历每个数据框并添加一些新列,例如 new
& new1
到数据帧 d1
和 d2
.以下是我尝试过的。
d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6))
d2 <- data.frame(y1 = c(3, 2, 1), y2 = c(6, 5, 4))
my.list <- list(d1, d2)
for(df in my.list) {
df$new <- df$y1 + df$y2
df$new1 <- df$y1 - df$y2
}
但是,当我查看原始数据框时
d1
和 d2
他们不显示新的 col new
.> colnames(d1)
[1] "y1" "y2"
> colnames(d2)
[1] "y1" "y2"
我如何将新列添加到原始数据框中
d1
和 d2
?
最佳答案
map 版本如下所示:
library(purrr) # part of the tidyverse
map(my.list, ~ mutate(.x, new = y1 + y2))
~
创建和匿名函数。
关于r - 遍历数据框列表并改变列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49411900/