【发布时间】:2021-12-24 10:16:11
【问题描述】:
我需要折叠一个大表(V19 为 5M),在该表中我根据特定列 (V1) 删除重复项,如果唯一,则合并所有其他列的值(如果不是,则只报告一次结果)。
我从这里尝试了一些解决方案,但这些示例主要针对 2 个变量执行 - 我有 19 个。最终发生的情况是,表格的整个其余部分都被省略了,因为它仅由一个特定的变量进行汇总,而不是将折叠应用于所有列。
输入:
V1 V2 V3 V4 V5 V6
TR1000 chr1 1000 1200 A +
TR1000 chr1 1100 1200 B +
TR1000 chr1 1000 1200 C +
TR2000 chr2 2000 2500 D +
TR2000 chr2 2100 2500 E +
TR3000 chr3 3000 3500 F +
TR3000 chr3 3000 3500 F +
我需要:
V1 V2 V3 V4 V5 V6
TR1000 chr1 1000|1100 1200 A|B|C +
TR2000 chr2 2000|2100 2500 D|E +
TR3000 chr3 3000 3500 F +
【问题讨论】:
-
在基础 R
aggregate(.~V1, df, \(x)paste0(unique(x), collapse = "|"))