変数のグループに少なくとも1つの値がNULL以外のすべての行をフィルタリングする場合に最適な構文を見つけるための問題が発生しました。変数のグループの値に基づいてdata.tableをフィルタリングする
例は以下の通りです:
> dat <- data.table(a=1:5, b=c(1:3, NA, NA), c=c(NA, 1:3, NA))
> cols <- c('b', 'c')
> dat[!all(is.na(cols)), .SD, with=FALSE]
Null data.table (0 rows and 0 cols)
> dat[!is.na(b)|!is.na(c), .SD]
a b c
1: 1 1 NA
2: 2 2 1
3: 3 3 2
4: 4 NA 3
それは私がそれを行うことができますので、しかし、私は変数のグループを含める方法を見つけることができない作品!is.na(variable1) | !is.na(variable2)
として、私は明示的に各変数の名前を言うならば、あなたが見ることができるように1条件のみで、すべてを連結しません。or
。
が機能しますが、大量のデータではマトリックス変換は高価です。 Reduceのアプローチがありますが、私はAFKでテストしています。 do.call( '+'、lapply(.SD、is.na)) ''のようなものも動作する可能性があります。 – MichaelChirico