トップ 一覧 検索 ヘルプ RSS ログイン 印刷

table()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!表形式でデータを集計したい

いわゆるピボットテーブルのようにデータを集計したければ、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%とするときに使う。

{{category データ要約}}

!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()で最初から一気に表にしようとせず、表の元になるデータをなるべくシンプルに作っておいて、表にするほうが見通しが良い。