如何在 r 中创建三向表(附示例)


三变量表是一种显示三个分类变量的频率的表。

在 R 中创建三条目表的最简单方法是使用xtabs()函数:

 three_way <- xtabs(~var1 + var2 + var3, data=df)

如果想更紧凑地显示三路数组,可以使用ftable()函数:

 three_way_ftable <- ftable(three_way)

注意xtabs()ftable()函数已集成到 R 数据库中。

以下示例展示了如何在实践中使用这些函数在 R 中创建三向表。

示例:如何在 R 中创建三向表

假设我们有以下数据框,其中包含有关各个篮球运动员的信息:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'),
                 starter=c('Yes', 'No', 'No', 'Yes', 'No',
                           'Yes', 'No', 'Yes', 'Yes', 'No'),
                 points=c(30, 28, 24, 24, 28, 14, 16, 20, 34, 29))

#view data frame
df

   team position starter points
1 AG Yes 30
2 AG No. 28
3 AG No. 24
4 AF Yes 24
5 AF No. 28
6 BG Yes 14
7 BG No. 16
8 BF Yes 20
9 BF Yes 34
10 BF No. 29

假设我们要创建一个三向表来基于三个变量显示玩家频率: teampositionstarter

我们可以使用xtabs()函数来创建这个三向数组:

 #create three-way table
three_way <- xtabs(~ team + position + starter, data=df)

#view three-way table
three_way

, , starter = No

    position
team FG
   AT 12
   B 1 1

, , starter = Yes

    position
team FG
   At 1 1
   B 2 1

结果的第一个表显示了起始变量等于 No. 的球队位置的球员频率。

第二个表显示了起始变量等于“是”的球队位置的球员频率。

如果需要,我们可以使用ftable()函数将这些数组“展平”为单个数组:

 #convert table to ftable
three_way_ftable <- ftable(three_way)

#view ftable
three_way_fttable

              starter No Yes
team position               
AF 1 1
     G 2 1
BF 1 2
     G 1 1

生成的三变量表以“平面”格式显示三个变量的频率。

例如,我们可以看到:

  • 1 名球员属于 A 队,位置为 F,但不是首发球员。
  • A队有1名球员,位置F,并且是首发球员。
  • A队G位置有2名球员没有首发。

等等。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中创建双向表
如何在R中按组创建频率表
如何在 R 中绘制表格

添加评论

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