dt = data.table(x = c(1,1,2,2,2,2,3,3,3,3))
dt[, y := if(.N > 2) .N else NA, by = x] # fail
dt[, y := if(.N > 2) .N else NA_integer_, by = x] # good
NA
には型があり、整数ではないため、最初のグループ化に失敗します。それを無視し、すべてのNAsを一貫性を保つどんなタイプにもしようとデータテーブルに指示する方法はありますか?R data.table NAタイプ一貫性
私は手動でNA_integer
を設定することができますが、多種のタイプのカラムがある場合は、すべてのNAタイプを正しく設定するのは難しいです。
ところで、Date/IDate/ITimeにはどのようなNAタイプを使用しますか?
@RichardScriven 2番目の作品は確信しています。 RStudioを使用していますか? RStuidioは、新しいコマンドが正常に実行されたときに以前のエラーメッセージを表示し続けることがあります。 – jf328
@RichardScrivenああ、私は理由を見る。 2つを順番に実行しないでください。失敗したコマンドは実際にテーブルを変更します – jf328
"x"カラムは "整数"ではありません - '.N'のために"整数 "が必要であると思われますので、' .N'を返すと、別の 'typeof'sに対してハードコード' NA_integer_'を使用します。それ以外の場合は、戻り値(ここでは 'NA')の' storage.mode'を適切な型に設定します。 –