根据R / Rstudio中对组的首次观察创建变量

时间:2017-05-24 12:49:17

标签: r data.table

我有一个data.table,并尝试根据对组的第一次观察创建一个新变量,例如:

    ID, Month, Value
    A    Jan     5
    A    Feb     10
    A    Mar     7
    B    Feb     3
    B    Mar     6

期望的输出:

    ID, Month, Value First.Month
    A    Jan     5      Jan
    A    Feb     10     Jan
    A    Mar     7      Jan
    B    Feb     3      Feb
    B    Mar     6      Feb

我在Rstudio工作,感谢任何帮助

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用data.table,我们可以按ID' ID'并指定(:=)'月'的第一个元素。即“月份[1L]' (1L只是一个整数表示,可以放到1)来创建' First.Month'

library(data.table)
dt[, First.Month := Month[1L], by = ID]
dt
#   ID Month Value First.Month
#1:  A   Jan     5         Jan
#2:  A   Feb    10         Jan
#3:  A   Mar     7         Jan
#4:  B   Feb     3         Feb
#5:  B   Mar     6         Feb

注意:如果不是data.table,请先转换为data.table

setDT(dt)