按行合并逗号分隔的值在data.table中

农作物

我有一个data.table DT如下。

DT <- structure(list(ID = c("Bats", "HL", "JL", "Spidey", "Supes", 
"X"), List1 = c("Morrison, Brubaker, Daniel, Loeb", "David, Bryne, Lee", 
"", "Loeb, Lee", "Moore, Siegel, Millar", "Bendis, Whendon"), 
    List2 = c("Rucka, Kane, Morrison", "Lee, Mantlo, Bryne", 
    "Meltzer, Sekowsky, Morrison", "Waid, Yost, Kirby, Lee", 
    "", "Claremont, Whendon, Morrison")), .Names = c("ID", "List1", 
"List2"), row.names = c(NA, -6L), class = c("data.table", "data.frame"
), .internal.selfref = NULL, sorted = "ID")

DT

      ID                            List1                        List2
1:   Bats Morrison, Brubaker, Daniel, Loeb        Rucka, Kane, Morrison
2:     HL                David, Bryne, Lee           Lee, Mantlo, Bryne
3:     JL                                   Meltzer, Sekowsky, Morrison
4: Spidey                        Loeb, Lee       Waid, Yost, Kirby, Lee
5:  Supes            Moore, Siegel, Millar                             
6:      X                  Bendis, Whendon Claremont, Whendon, Morrison

我想这两个列表行,逐列合并DT$List1DT$List2在一起,没有重复。

我可以apply按照以下方式进行操作。

DT$merged <- apply(DT,1,function(vec){
  paste(unique(strsplit(paste(vec[2],vec[3],sep=", "),", ")[[1]]),collapse=", ")
})

     DT
       ID                            List1                        List2
1:   Bats Morrison, Brubaker, Daniel, Loeb        Rucka, Kane, Morrison
2:     HL                David, Bryne, Lee           Lee, Mantlo, Bryne
3:     JL                                   Meltzer, Sekowsky, Morrison
4: Spidey                        Loeb, Lee       Waid, Yost, Kirby, Lee
5:  Supes            Moore, Siegel, Millar                             
6:      X                  Bendis, Whendon Claremont, Whendon, Morrison
                                          merged
1: Morrison, Brubaker, Daniel, Loeb, Rucka, Kane
2:                     David, Bryne, Lee, Mantlo
3:                 , Meltzer, Sekowsky, Morrison
4:                  Loeb, Lee, Waid, Yost, Kirby
5:                         Moore, Siegel, Millar
6:          Bendis, Whendon, Claremont, Morrison

如何避免data.table由于空白单元格而在开头和结尾都没有“,”而有效地获得相同的结果

埃迪
DT[, merged := toString(unique(c(strsplit(List1, split = ", ")[[1]],
                                 strsplit(List2, split = ", ")[[1]]))), by = ID][]
#       ID                            List1                        List2
#1:   Bats Morrison, Brubaker, Daniel, Loeb        Rucka, Kane, Morrison
#2:     HL                David, Bryne, Lee           Lee, Mantlo, Bryne
#3:     JL                                   Meltzer, Sekowsky, Morrison
#4: Spidey                        Loeb, Lee       Waid, Yost, Kirby, Lee
#5:  Supes            Moore, Siegel, Millar                             
#6:      X                  Bendis, Whendon Claremont, Whendon, Morrison
#                                          merged
#1: Morrison, Brubaker, Daniel, Loeb, Rucka, Kane
#2:                     David, Bryne, Lee, Mantlo
#3:                   Meltzer, Sekowsky, Morrison
#4:                  Loeb, Lee, Waid, Yost, Kirby
#5:                         Moore, Siegel, Millar
#6:          Bendis, Whendon, Claremont, Morrison

1:nrow(DT)如果您的ID栏目不唯一,用替换“ by”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将列中的重复行合并为逗号分隔的值-Google查询

来自分类Dev

在 SQL Server 中按顺序选择中的逗号分隔值

来自分类Dev

查找与逗号分隔的值在同一行中的行

来自分类Dev

在MySQL中以逗号分隔的行中获取不同值的计数

来自分类Dev

在SQL Server中以逗号分隔的值与总和的行

来自分类Dev

如何在变量中获取行并用逗号分隔值?

来自分类Dev

如何在 SQL 中以逗号分隔的行存储列值

来自分类Dev

按列值复制data.table中的行

来自分类Dev

分组以在data.table中形成多个逗号分隔的列

来自分类Dev

如何将列内的值合并到熊猫中用逗号分隔的单行中?

来自分类Dev

如何使用逗号分隔符将多行中的值合并为单行

来自分类Dev

如何在新行中将R中的逗号分隔值分隔开?

来自分类Dev

data.table中的按行制表

来自分类Dev

如何在data.table的列中选择第一个逗号分隔的值?

来自分类Dev

使用逗号分隔的字符串中的值从表中查找行

来自分类Dev

如何根据Power Query中Power BI参数中的逗号分隔值列表删除行?

来自分类Dev

使用逗号分隔的字符串中的值从表中查找行

来自分类Dev

在oracle中交换逗号分隔的值

来自分类Dev

Hive中以逗号分隔值的列

来自分类Dev

在SQL Server中替换逗号分隔的值

来自分类Dev

在Oracle中拆分逗号分隔的值

来自分类Dev

在Unix中获取逗号分隔的不同值

来自分类Dev

从逗号分隔的列表中插入拆分的值

来自分类Dev

从列中用逗号分隔的值中搜索

来自分类Dev

在以逗号分隔的列表中查找值

来自分类Dev

如何检查逗号分隔数据中的值

来自分类Dev

更新列中逗号分隔的值

来自分类Dev

从逗号分隔的列表中插入拆分的值

来自分类Dev

将值存储在以逗号(,)分隔的变量中

Related 相关文章

  1. 1

    将列中的重复行合并为逗号分隔的值-Google查询

  2. 2

    在 SQL Server 中按顺序选择中的逗号分隔值

  3. 3

    查找与逗号分隔的值在同一行中的行

  4. 4

    在MySQL中以逗号分隔的行中获取不同值的计数

  5. 5

    在SQL Server中以逗号分隔的值与总和的行

  6. 6

    如何在变量中获取行并用逗号分隔值?

  7. 7

    如何在 SQL 中以逗号分隔的行存储列值

  8. 8

    按列值复制data.table中的行

  9. 9

    分组以在data.table中形成多个逗号分隔的列

  10. 10

    如何将列内的值合并到熊猫中用逗号分隔的单行中?

  11. 11

    如何使用逗号分隔符将多行中的值合并为单行

  12. 12

    如何在新行中将R中的逗号分隔值分隔开?

  13. 13

    data.table中的按行制表

  14. 14

    如何在data.table的列中选择第一个逗号分隔的值?

  15. 15

    使用逗号分隔的字符串中的值从表中查找行

  16. 16

    如何根据Power Query中Power BI参数中的逗号分隔值列表删除行?

  17. 17

    使用逗号分隔的字符串中的值从表中查找行

  18. 18

    在oracle中交换逗号分隔的值

  19. 19

    Hive中以逗号分隔值的列

  20. 20

    在SQL Server中替换逗号分隔的值

  21. 21

    在Oracle中拆分逗号分隔的值

  22. 22

    在Unix中获取逗号分隔的不同值

  23. 23

    从逗号分隔的列表中插入拆分的值

  24. 24

    从列中用逗号分隔的值中搜索

  25. 25

    在以逗号分隔的列表中查找值

  26. 26

    如何检查逗号分隔数据中的值

  27. 27

    更新列中逗号分隔的值

  28. 28

    从逗号分隔的列表中插入拆分的值

  29. 29

    将值存储在以逗号(,)分隔的变量中

热门标签

归档