【发布时间】:2014-07-10 14:34:54
【问题描述】:
我有一个数据框列表lsD 和一个向量列表lsV。向量的长度与数据帧中的行数相同(在玩具示例中 = 5)。
我想将向量作为附加列添加到每个数据框。我让它与for 循环一起工作,但我的一般问题是:如何在没有for 的情况下按名称遍历两个列表?有lapply 的方法吗?
这是一个玩具示例和我使用 for 循环的解决方案:
lsV <- list(x = sample(LETTERS[1:5], 5,replace=T),
y = sample(LETTERS[1:5], 5, replace=T),
z=sample(LETTERS[1:5], 5, replace=T))
lsD <- list(x = data.frame(matrix(sample(LETTERS[1:5], 20,replace=T), ncol=4)),
y = data.frame(matrix(sample(LETTERS[1:5], 20,replace=T), ncol=4)),
z = data.frame(matrix(sample(LETTERS[1:5], 20,replace=T), ncol=4)))
for (i in 1:length(lsV)) {lsD[[i]]<-cbind(lsD[[i]], lsV[[i]])}
有什么想法吗?我尝试了以下方法,但当然它没有用。谢谢!
lapply(names(lsD), function(X) {lsD$X<-cbind(lsD$X, lsV$X)})
【问题讨论】: