auditR
表形式でデータを集計したい
いわゆるピボットテーブルのようにデータを集計したければ、table()関数がある。
table(df$x, df$y)
で縦横の度数テーブルができる。なお、要素を3つ入れると三次元のテーブルになり、要素にベクトルを設定すると層別に表示される。
margin.table(tbl, 1:3)
とすればテーブルtblの1番目から3番目までの要素の合計値が計算される。
- オプションでNAの扱いを指定する
デフォルトではNAのデータは集計の対象から外される。したがって空欄が意味を持つようなデータであれば、明示的にNAを含めるように指定してやる。
table(x, y, useNA="ifany")
割合で表示する
prop.table(table(df$x, df$y), 1)
とすれば、度数テーブルが割合テーブルに変換できる。
1は行を100%とするとき、2は列を100%とするときに使う。
[データ要約]
pivot_wider()を使う
値の集計は関数でできたが、件数を集計したいときにすこし苦労したので、記録
library(tidyverse) grh <- read.table(file = "~/Desktop/count.csv", sep=",", header = T) grh |> select(-area_2) |> #不要な項目を除外 group_by(area_1, type, pref) |> #集計したいグループを定義 summarise(N = n()) |> #件数を集計 pivot_wider(names_from = pref, values_from = N, values_fill = 0) #縦横表示
pivot_wider()で最初から一気に表にしようとせず、表の元になるデータをなるべくシンプルに作っておいて、表にするほうが見通しが良い。
Last updated 2022-10-26 | auditR (c) N.Nawata