如何在 r 中创建列联表


列联表(有时称为“交叉表”)是一种总结两个分类变量之间关系的表。

幸运的是,使用数据透视表函数可以轻松地为 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 台电视。
  • 表底部的值显示各列的总和:A 国总共订购了 5 种产品,B 国订购了 5 种产品,C 国订购了 5 种产品,D 国订购了 5 种产品。
  • 表内的值表示在每个国家订购的特定产品的数量:来自A国的1台计算机、来自A国的1台收音机、来自A国的3台电视等。

其他资源

如何在 R 中对列进行平均
如何对 R 中的特定列求和
如何计算R中多列的平均值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注