【问题标题】:converting a column values into different row in data.table in R [duplicate]将列值转换为R中data.table中的不同行[重复]
【发布时间】:2016-01-08 10:34:29
【问题描述】:

我有一个 data.table 像:

Cell    Num
a       1,2,3,4,5,6
b       7,8,9
c       10,11,12
d       13,14

我需要将其转换为:

Num Cell
1   a
2   a
3   a
4   a
5   a
6   a
7   b
8   b
9   b
10  c 
11  c
12  c 
13  d
14  d

我们如何将表格分解为所需的格式?

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    我们可以使用cSplit

    library(splitstackshape)
    cSplit(df1, "Num", ",", "long")
    #    Cell Num
    # 1:    a   1
    # 2:    a   2
    # 3:    a   3
    # 4:    a   4
    # 5:    a   5
    # 6:    a   6
    # 7:    b   7
    # 8:    b   8
    # 9:    b   9
    #10:    c  10
    #11:    c  11
    #12:    c  12
    #13:    d  13
    #14:    d  14
    

    或者正如@David Arenburg 提到的

    library(data.table)
    dt[, .(Num = strsplit(Num, ",")[[1]]), by = Cell]
    

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 2018-04-26
      • 2020-02-16
      • 1970-01-01
      相关资源
      最近更新 更多