合并具有部分匹配值的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并具有部分匹配值的行相关的知识,希望对你有一定的参考价值。

我的数据集如下:

V1 V2 V3
A,C E,F G,H
A,B D,E G,H
A,B,K D,F G

我想通过第一列合并它们,只要它们共享用逗号分隔的字符串中的至少一个值。

我想看的输出是

V1 V2 V3
A,B,C,K D,E,F G,H

有人可以帮我吗?

答案

样本数据

library( data.table ) DT <- fread("V1 V2 V3 A,C E,F G,H A,B D,E G,H A,B,K D,F G")

code

DT[, lapply( .SD, function(x) { paste0(sort(unique(na.omit(unlist(tstrsplit( x, "," ))))), collapse = "," ) })]

输出

V1 V2 V3 1: A,B,C,K D,E,F G,H

以上是关于合并具有部分匹配值的行的主要内容,如果未能解决你的问题,请参考以下文章

Excel - 合并具有共同值的行并将差异连接在一列中

具有三个公共值的行中的空值,第四个随着一个匹配而变化

电源查询。合并具有折叠值的行中的重复行

将列中具有相同值的行合并在一起

如何在Google表格中合并具有相同索引且具有不同值的行?

Pandas 将具有多个值的行数据合并到列的 Python 列表中