28
大規模なdata.table内の列のグループにそれぞれ個別に参照することなく関数を適用しようとしています。R Datatable、列のサブセットに関数を適用する
上記MWEとa <- data.table(
a=as.character(rnorm(5)),
b=as.character(rnorm(5)),
c=as.character(rnorm(5)),
d=as.character(rnorm(5))
)
b <- c('a','b','c','d')
、この:
a[,b=as.numeric(b),with=F]
作品が、この:
a[,b[2:3]:=data.table(as.numeric(b[2:3])),with=F]
は動作しません。 の2列目と3列目だけにas.numeric
関数を適用する正しい方法は、個別には参照しないでください。
(実際のデータでは、それは非現実的になるように、列の数十があります設定)慣用的なアプローチは、あなたがするRHSを強制することができ.SD
と.SDcols
を使用することです
おかげ
あなたがここにグループ化「によって」を使用したい場合は、mysubset' 'で、事前に含まれなければならないこと? –
@TrevorAlexander - いいえ、By列は '.SD'ではなく、' .SD'が作成された環境では単一の値として存在します。 – mnel
こんにちは、私は 'b'以外のすべての列に関数を適用したいのですが、どうすれば使用できますか?ありがとう! – Christa