Добавление именованного вектора в список векторов в R - PullRequest
1 голос
/ 04 октября 2019

У меня есть список из 3 векторов с именами AA, BB и CC. Я хочу добавить новый именованный элемент с именем H к каждому из этих 3 векторов, который будет отображаться как H = some number.

Вот что я пытался безуспешно:

L <- list(AA = c(K = 2225, M = 39911), BB = c(K = 5456, M = 65533), CC = c(K = 15274, M = 48877))

L[[1]]$H <- H = 25
L[[2]]$H <- H = 23
L[[3]]$H <- H = 41

1 Ответ

3 голосов
/ 04 октября 2019

Мы можем использовать Map для достижения этой цели. Используйте вектор в качестве одного из аргументов для Map вместе с уже существующим list ('L') - предполагая, что length для list и vector одинаковы и объединены (c)

Map(c, L, H = c(25, 23, 41))
#$AA
#    K     M     H 
# 2225 39911    25 

#$BB
#    K     M     H 
# 5456 65533    23 

#$CC
#    K     M     H 
#15274 48877    41 

Или с использованием for петли

v1 <- c(25, 23, 41)
for(i in seq_along(L)) L[[i]] <- c(L[[i]], H = v1[i])

Или с использованием purrr

library(purrr)
map2(L, c(25, 23, 41), ~ c(.x, H = .y))
...