R 有效更改引用前一行的数据帧中的变量';s值

R 有效更改引用前一行的数据帧中的变量';s值,r,data.table,R,Data.table,我有一个如下所示的数据库: df使用ave df$num+ave(df$id,df$id,FUN = seq_along)-1 [1] 12 13 14 28 29 17 18 7 使用ave df$num+ave(df$id,df$id,FUN = seq_along)-1 [1] 12 13 14 28 29 17 18 7 结果: # id num # 1: 1 12 # 2: 1 13 # 3: 1 14 # 4: 2 28 # 5: 2 29 # 6:

我有一个如下所示的数据库:

df使用
ave

df$num+ave(df$id,df$id,FUN = seq_along)-1
[1] 12 13 14 28 29 17 18  7
使用
ave

df$num+ave(df$id,df$id,FUN = seq_along)-1
[1] 12 13 14 28 29 17 18  7
结果:

#    id num
# 1:  1  12
# 2:  1  13
# 3:  1  14
# 4:  2  28
# 5:  2  29
# 6:  3  17
# 7:  3  18
# 8:  4   7
结果:

#    id num
# 1:  1  12
# 2:  1  13
# 3:  1  14
# 4:  2  28
# 5:  2  29
# 6:  3  17
# 7:  3  18
# 8:  4   7

另一种data.table方法,以防您喜欢由
提供的显式

library(data.table)
setDT(df)

df[ , num := num + 1:.N - 1, by=id]

另一种data.table方法,以防您喜欢由
提供的显式

library(data.table)
setDT(df)

df[ , num := num + 1:.N - 1, by=id]
#    id num
# 1:  1  12
# 2:  1  13
# 3:  1  14
# 4:  2  28
# 5:  2  29
# 6:  3  17
# 7:  3  18
# 8:  4   7
library(data.table)
setDT(df)

df[ , num := num + 1:.N - 1, by=id]