как создать список, используя двойные скобки для извлечения элементов - PullRequest
0 голосов
/ 29 января 2019
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 голосов
/ 29 января 2019

Так как я не мог найти дубликат для этого.Я выложу ответ.

Мы можем использовать mapply для добавления элементов в список.

mapply("+", L, v)

#$a
#[1] 4 6 8

#$b
#[1] 4 5 6 3

#$c
#[1]  8 11
0 голосов
/ 29 января 2019

С 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
...