【问题标题】:Inserting rows based on the values in r by groups根据 r 中的值按组插入行
【发布时间】:2017-05-21 13:09:52
【问题描述】:

我想根据列中的值按组插入行。 例如,在以下示例中,我对组 A 有两个观察结果,对组 B 有一个观察结果。我对创建输出数据框感兴趣。输出数据框包括输入数据框中日期前后的 2 天。 (例如,A 组 (100-2,100-1,100,100+1,100+2))

输入:

Group   Date
A   100
A   15
B   35

输出

Group   Date
A   98
A   99
A   100
A   101
A   102
A   13
A   14
A   15
A   16
A   17
B   33
B   34
B   35
B   36
B   37

【问题讨论】:

    标签: r insert rows


    【解决方案1】:

    我们可以使用data.table

    library(data.table)
    setDT(df1)[, .(Date = seq((Date-2), Date+2, by = 1)), .(Group, n = 1:nrow(df1))
                        ][, n := NULL][]
    #    Group Date
    # 1:     A   98
    # 2:     A   99
    # 3:     A  100
    # 4:     A  101
    # 5:     A  102
    # 6:     A   13
    # 7:     A   14
    # 8:     A   15
    # 9:     A   16
    #10:     A   17
    #11:     B   33
    #12:     B   34
    #13:     B   35
    #14:     B   36
    #15:     B   37
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 2018-12-18
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多