如何在 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台电视等。