大家好,新年快乐,我想知道是否data.table
可以处理基于每个组的选择执行的更新。
R) a=data.table(x=c("a","a","b","b","c","c"),y=c(1,2,3,3,2,1))
R) a
x y
1: a 1
2: a 2
3: b 3
4: b 3
5: c 2
6: c 1
如果我想更新每个分组中的条件,我需要在中进行选择j
,但这更像是一i
件事(选择)。
R) a[,c:=ifelse(y==max(y),"yes","no"),by=x]
R) a
x y c
1: a 1 no
2: a 2 yes
3: b 3 yes
4: b 3 yes
5: c 2 yes
6: c 1 no
我可以使用类似 a[y==max(y),c:="yes",by=x,within.by=TRUE]
我认为会快得多的选项来做同样的事情吗
第二个问题,它是否计划在 中进行 drop 参数data.table
,能够做到
DT[drop="x,y,z"]
这一点本质上是DT[,':='(x=NULL,y=NULL,z=NULL)]