r - 在R中按名称合并一个列表的列表元素
问题描述
我有一个包含大量元素的列表(最终应该是一个反向索引)。
- 所有元素都是具有不同长度的数字向量。
- 一个元素的名字出现多次
> par.list
$NAMEA
[1] 1 2 3 4 5 7 8 9 10
$NAMEB
[1] 6
$NAMEB
[1] 11 12 13 16 17
$NAMEA
[1] 14 15 18 19 20
我寻找的是一种高效的方式,我得到了
> merged.list
$NAMEA
[1] 1 2 3 4 5 7 8 9 10 14 15 18 19 20
$NAMEB
[1] 6 11 12 13 16 17
我确信有一种简单的方法可以做到这一点,但我只是没有在这里找到正确的线程,所以我将不胜感激!
解决方案
我们可以stack
命名list
为两列 data.frame 和split
with(stack(par.list), split(values, ind))
-输出
$NAMEA
[1] 1 2 3 4 5 7 8 9 10 14 15 18 19 20
$NAMEB
[1] 6 11 12 13 16 17
数据
par.list <- list(NAMEA = c(1, 2, 3, 4, 5, 7, 8, 9, 10), NAMEB = 6, NAMEB = c(11L,
12L, 13L, 16L, 17L), NAMEA = c(14L, 15L, 18L, 19L, 20L))
推荐阅读
- c - 具有参数数量和默认参数的宏
- c++ - 将非类型与可变参数模板中的每种类型配对
- android - 在android'列'_data'中获取文件路径时出错'不存在'
- hibernate - 更新同一实体时的 Spring Boot 竞争条件
- c++ - C++ 无锁线程问题 - 多个线程迭代连续数组但从不访问相同的成员数据?
- javascript - clearTimeout 如何真正清除超时?
- java - 如何在 javaFX 中使用 setOnKeyTyped
- python - Angular/Node Express + Flask API + Heroku,不确定 Procfile
- reactjs - React-Native:borderRadius 未正确应用于子组件(即 Image),但该属性应用于 touchableOpacity
- database - Ms Access 中的关键字搜索组合框