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
各 by-group 内の条件で更新したい場合は、 で選択を行う必要がありますが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]
はるかに高速になると思うようなオプションを使用して同じことを行うことはできますか
2 番目の質問は、でドロップ引数を取得するようにスケジュールされてdata.table
います
DT[drop="x,y,z"]
か?DT[,':='(x=NULL,y=NULL,z=NULL)]