объединить элементы в списке в соответствии с другим списком - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть следующий список:

L = list()

L[[1]] = c(1,2,3)
L[[2]] = c(4,5)
L[[3]] = c(6,7,8)
L[[4]] = c(9, 10, 11, 12, 13)
L[[5]] = c(14, 15, 16)

Я хотел бы объединить определенные элементы L в соответствии со значениями, указанными в списке ToUnite:

ToUnite = list()
ToUnite[[1]] = c(1,2,3)
ToUnite[[2]] = c(4,5)

Итакчто результирующий список должен содержать два элемента, соответствующих c (1,2,3) и c (4,5) из L, соответственно, выглядя так:

result = list()
result[[1]] = seq(1,8)
result[[2]] = seq(9, 16)

Как я могу это сделатьэто наиболее эффективным способом?

1 Ответ

0 голосов
/ 18 декабря 2018

Мы можем перебрать 'ToUnite' с помощью lapply, извлечь элементы list из 'L' и unlist

lapply(ToUnite, function(x) unlist(L[x]))
#[[1]]
# [1] 1 2 3 4 5 6 7 8

#[[2]]
# [1]  9 10 11 12 13 14 15 16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...