4

同じ長さの単純なリストと単純なベクトルがあります。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])
}
4

2 に答える 2

7

に相当する多変量を使用しsapplyますmapply。以下のコードでは、関数cは各testandの最初の要素に適用されvec、次に 2 番目の要素などに適用されます。

test = mapply(c, test, vec)
于 2012-11-13T16:15:35.453 に答える
1

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]))
于 2012-11-13T21:20:08.143 に答える