我有一个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工作,感谢任何帮助
提前致谢!
答案 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)