将向量的元素添加到R中列表的元素

时间:2012-11-13 16:09:45

标签: 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])
}

2 个答案:

答案 0 :(得分:6)

使用多变量等效的sapply,即mapply。在下面的代码中,函数c应用于每个testvec的第一个元素,然后是第二个元素等......

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]))