将向量的元素添加到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)