R data.table:如何按组指示唯一列值的首次出现
我有一个很大的data.table~18*10^6行,其中填充了列ID和CLASS,我想创建一个新的二进制列,用ID指示新类值的出现R data.table:如何按组指示唯一列值的首次出现,r,data.table,lag,shift,R,Data.table,Lag,Shift,我有一个很大的data.table~18*10^6行,其中填充了列ID和CLASS,我想创建一个新的二进制列,用ID指示新类值的出现 DT一种可能性是: DT[, NEWCLS := as.integer(!duplicated(CLASS)), by = ID] ID CLASS NEWCLS 1: 1 a 1 2: 1 a 0 3: 1 b 1 4: 2 c 1 5: 2 b 1 看
DT一种可能性是:
DT[, NEWCLS := as.integer(!duplicated(CLASS)), by = ID]
ID CLASS NEWCLS
1: 1 a 1
2: 1 a 0
3: 1 b 1
4: 2 c 1
5: 2 b 1
看起来应该和你的一样!重复(.SD,by=c(“ID”,“CLASS”)),这可能比使用by=.更快。你能详细说明一下为什么要快一点吗?当然。我认为这是对函数的一次调用,而不是一组一次调用;它是data.table包中的一个函数,所以我怀疑它很快