我有一个简单的列表和一个相同长度的简单向量。我想将向量的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])
}
答案 0 :(得分:6)
使用多变量等效的sapply
,即mapply
。在下面的代码中,函数c
应用于每个test
和vec
的第一个元素,然后是第二个元素等......
test = mapply(c, test, vec)
答案 1 :(得分:1)
你总是可以将循环翻译成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]))