将向量的元素添加到R中列表的元素
我有一个简单的列表和一个相同长度的简单向量。我想将向量的将向量的元素添加到R中列表的元素,r,loops,R,Loops,我有一个简单的列表和一个相同长度的简单向量。我想将向量的ith元素添加到列表的ith元素中。有没有比使用for循环更好的方法 test <- list(element1=list(a=1,b=2,a1=8), element2=list(a=9,d=17)) vec <- c(12,25) for (i in 1:length(test)){ test[[i]] <- c(test[[i]],vec[i]) } test使用sapply的多
ith
元素添加到列表的ith
元素中。有没有比使用for循环更好的方法
test <- list(element1=list(a=1,b=2,a1=8),
element2=list(a=9,d=17))
vec <- c(12,25)
for (i in 1:length(test)){
test[[i]] <- c(test[[i]],vec[i])
}
test使用sapply
的多元等价物,即mapply
。在下面的代码中,函数c
应用于每个测试和vec
的第一个元素,然后应用于第二个元素,以此类推
test = mapply(c, test, vec)
您可以将for循环转换为lappy/apply/sapply。下面是代码的示例
"for"(i, 1:length(test), test[i] <- c(test[[i]], vec[i]))
test <- lapply(1:length(test), function(i) c(test[[i]], vec[i]))
“for”(i,1:length(test),test[i]非常感谢。当我尝试lappy时,我非常接近,但没有成功。很高兴你帮了忙。有没有办法给两个附加的列表元素指定一个相同的固定名称?我尝试使用“名称您必须强制vec
进入命名元素列表,然后可以使用lappy
和names@hans0l0是的,您可以通过一个命令来完成这一切:mapply(function(x,y)c(x,“yourname”=y),test,vec)
。