根据r中的值按组插入行

时间:2017-05-21 04:48:21

标签: r insert rows

我想根据组中的值插入行。 例如,在下面的例子中,我对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

1 个答案:

答案 0 :(得分:0)

我们可以使用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