R で分割表を作成する方法


分割表(「クロス集計」とも呼ばれます) は、2 つのカテゴリ変数間の関係を要約する表の一種です。

幸いなことに、ピボット テーブル関数を使用すると、R で変数の分割表を簡単に作成できます。このチュートリアルでは、これを行う方法の例を示します。

例: R の分割表

購入された製品の種類や製品が購入された国など、20 の異なる製品注文に関する情報を表示する次のデータセットがあるとします。

 #create data
df <- data.frame(order_num = 1:20,
                 product= rep (c(' TV ', ' Radio ', ' Computer '), times =c(9, 6, 5)),
                 country= rep (c(' A ', ' B ', ' C ', ' D '), times =5))

#view data
df

   order_num product country
1 1 TV A
2 2 TV B
3 3 TV C
4 4 TV D
5 5 TV A
6 6 TV B
7 7 TV C
8 8 TV D
9 9 TV A
10 10 Radio B
11 11 Radio C
12 12 Radio D
13 13 Radio A
14 14 Radio B
15 15 Radio C
16 16 Computer D
17 17 Computer A
18 18 Computer B
19 19 Computer C
20 20 Computer D

分割表を作成するには、 table()関数を使用し、製品変数と国変数を引数として指定するだけです。

 #create contingency table
table <- table(df$product, df$country)

#view contingency table
table

           ABCD
  Computer 1 1 1 2
  Radio 1 2 2 1
  TV 3 2 2 2

addmargins()関数を使用してテーブルにマージンを追加することもできます。

 #add margins to contingency table
table_w_margins <- addmargins(table)

#view contingency table
table_w_margins

            ABCD Sum
  Computer 1 1 1 2 5
  Radio 1 2 2 1 6
  TV 3 2 2 2 9
  Sum 5 5 5 5 20

表を解釈する方法は次のとおりです。

  • 右下隅の値は、注文された製品の総数 20 を示します。
  • 右側の値は行の合計を示しています。合計で、コンピューター 5 台、ラジオ 6 台、テレビ 9 台が注文されました。
  • 表の下部の値は列の合計を示しています。合計 5 個の製品が A 国で注文され、5 個が B 国で、5 個が C 国で、5 個が D 国で注文されました。
  • 表内の値は、各国で注文された特定の製品の数を示します。A 国から 1 台のコンピューター、A 国から 1 台のラジオ、A 国から 3 台のテレビなど。

追加リソース

R で列の平均を計算する方法
R で特定の列を合計する方法
R で複数の列の平均を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です