如何使用双括号提取元素来创建列表

时间:2019-01-29 04:45:10

标签: r apply

L <- list(a= c(1,3,5), b= c(2,3,4,1), c= c(4,7))
v <- c(3,2,4)

如下所示

> L[[1]]+3
[1] 4 6 8
> L[[2]]+2
[1] 4 5 6 3
> L[[3]]+4
[1]  8 11

我希望得到的结果为

list(a= c(4,6,8), b= c(4,5,6,3), c= c(8,11)) 

是否可以使用APPLY函数?

2 个答案:

答案 0 :(得分:0)

使用lapply()

L[] <- lapply(1:3, function(i) L[[i]] + v[i])
L

$a
[1] 4 6 8

$b
[1] 4 5 6 3

$c
[1]  8 11

答案 1 :(得分:0)

自那时以来,我找不到与此重复的内容。我将发布答案。

我们可以使用mapply在列表中添加元素。

mapply("+", L, v)

#$a
#[1] 4 6 8

#$b
#[1] 4 5 6 3

#$c
#[1]  8 11