首页 > 解决方案 > 将命名向量添加到 R 中的向量列表中

问题描述

我有一个名为AABB和的 3 个向量的列表CC。我想为这 3 个向量中的每一个添加一个新的命名元素,该元素H将显示为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

标签: rlistfunctionloopslapply

解决方案


我们可以用它Map来完成这个。使用向量作为参数Map之一与已经存在的list('L') 一起使用 - 假设lengththelistvectorthe 相同并连接 ( 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))

推荐阅读