根据元素名称组合列表元素

时间:2013-09-12 14:51:25

标签: r

如何按元素名称组合这个矢量列表?

L1 <- list(F01=c(1,2,3,4),F02=c(10,20,30),F01=c(5,6,7,8,9),F02=c(40,50))

所以得到:

results <- list(F01=c(1,2,3,4,5,6,7,8),F02=c(10,20,30,40,50))

我尝试应用以下解决方案merge lists by elements names,但我无法弄清楚如何根据我的情况调整此方法。

2 个答案:

答案 0 :(得分:8)

sapply(unique(names(L1)), function(x) unname(unlist(L1[names(L1)==x])), simplify=FALSE)
$F01
[1] 1 2 3 4 5 6 7 8 9

$F02
[1] 10 20 30 40 50

答案 1 :(得分:1)

您可以使用map中的purrr函数来获得相同的结果

map(unique(names(L1)), ~ flatten_dbl(L1[names(L1) == .x])) %>%
  set_names(unique(names(L1)))

第一行通过合并具有匹配名称的元素来转换数据,而最后一行相应地重命名新列表。