我正在处理几个数据集,这些数据集在很多年内测量了相同的变量。我想给每个数据集添加一个年份变量,更普遍地说,我想循环遍历向量中的元素,并将每个向量作为新列添加到数据帧列表中。这个问题与我的类似,但我想要按顺序将向量中的每个元素作为新列迭代地添加到相应的数据框中:
R - New variables over several data frames in a loop
以下是一个样例数据:
year <- c(1:3)
data1 <- data.frame(var1 = c(1:5))
data2 <- data.frame(var1 = c(11:15))
data3 <- data.frame(var1 = c(21:25))
data_list <- list(data1 = data1, data2 = data2, data3 = data3)
我想做这件事,但我认为可能有一些循环(或lapply)的方法,我还没有弄清楚:
data1$year <- year[1]
data2$year <- year[2]
data3$year <- year[3]
由于我有多年的工作经验和数据集要处理,希望能有更高效的解决方案。谢谢!
lapply(year, function(x){data_list[[x]][["year"]] <<- x})
- Michael GriffithsMap(function(x, y){data.frame(x, year = y)}, data_list, year)
的翻译是什么? - alistaireMap(cbind, data_list, year=year)
就可以了。 - thelatemail...
中传递命名参数,但现在看到了,感觉很明显! - alistaire