我有一个简单的列表和一个相同长度的简单向量。我想将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])
}
使用 的多元等效项sapply
,即mapply
。在下面的代码中,该函数c
应用于每个test
and的第一个元素vec
,然后是第二个元素,等等......
test = mapply(c, test, vec)
您总是可以将 for 循环转换为 lapply/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]))