dplyr内のカラムを要約する関数を作成しています。 group_by
で定義されたグループ内:ある列の値が一定の定数kの場合、そのグループの集計値はk
である必要がありますが、列が定数でない場合、値はNAになります。dplyrの特定のタイプの 'NA'カラムを作成します
理想的には、NAを入力列のクラスに変換したいと思います。したがって、それが数値列の場合、サマリー関数はas(NA, "numeric")
の等価を返します。
上記を実行するには、関数.collapse_if_constant
を書きました。この質問を簡単にするために、私はちょうどdplyrの中で指定されたタイプのNA列を作る方法を考え出したいと思います。
その後
DF <- data.frame(x = "A", y = 1:3, z = c(TRUE, FALSE, TRUE))
DF %>%
group_by(x) %>%
summarise(y = as(NA, class(y)), z = as(NA, class(z)))
戻り
x y z
(fctr) (lgl) (lgl)
1 A NA NA
しかし、私はそれが見えるようにしたいみよう
tibble::tibble(x = factor("A"), y = as(NA, "numeric"), z = NA)
x y z
(fctr) (dbl) (lgl)
1 A NA NA
...要約された列は入力列と同じクラスになります。
この質問を無視してください。私はdplyrの以前のリリースを使用していました(v0.4.3;現在のCRANは0.7.4)。問題は解決されました。 summarize_at
を使用して
'NA'あなたは' NA_integer_'、 'NA_real_'、' NA_complex_'、と 'NA_character_'を使用することができることに留意します。整数クラス、数値クラス、複合クラス、および文字クラスの場合はそれぞれです。 – Benjamin
私は知っていますが、特定のタイプのNAを動的に構築するには、 '(NA、type_name)'を使用してください。 –