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


双向表是一种显示两个分类变量的频率的表。

例如,下面的双向表显示了一项调查结果,该调查询问了 100 个人他们喜欢哪种运动:棒球、篮球或足球。

行显示受访者的性别,列表示他们选择的运动:

本教程提供了在 R 中创建和使用双向数组的几个示例。

示例 1:从头开始创建复式表

以下代码演示了如何使用as.table()函数从头开始创建复式表:

 #create matrix
data <- matrix(c(13, 23, 15, 16, 20, 13), ncol= 3 )

#specify row and column names of matrix
rownames(data) <- c('Male', 'Female')
colnames(data) <- c('Baseball', 'Basketball', 'Football')

#convert matrix to table
data <- as. table (data)

#display table
data

       Baseball Basketball Soccer
Male 13 15 20
Female 23 16 13

示例 2:根据数据创建双向表

以下代码显示如何从数据框创建双向表:

 #create data frame
df <- data. frame (sport=c(' Base ', ' Base ', ' Bask ', ' Foot ', ' Foot '),
                 gender=c(' Male ', ' Female ', ' Male ', ' Male ', ' Female '))

#view data frame
df

#create two way table from data frame
data <- table(df$gender, df$sport)

#display two way table
data 

         Base Basketball
  Female 1 0 1
  Male 1 1 1

示例 3:计算复式记账表的保证金总和

以下代码展示了如何使用margin.table()函数计算双向表的保证金总和:

 #create matrix of data
data <- matrix(c(13, 15, 20, 23, 16, 13), ncol=3)
rownames(data) <- c(' Male ', ' Female ')
colnames(data) <- c(' Baseball ', ' Basketball ', ' Football ')

#find sum of genders
margin. table (data, margin=1)

  Male Female 
    49 51

#find sum of sports

margin. table (data, margin=2)

Baseball Basketball Soccer 
        28 43 29 

示例 4:可视化双向表的频率

在双向表中可视化频率的一种方法是创建条形图

 barplot(data, legend= True , beside= True , main=' Favorite Sport by Gender ') 

在双向表中可视化频率的另一种方法是创建平铺图

 mosaicplot(data, main=' Sports Preferences ', xlab=' Gender ', ylab=' Favorite Sport ')


您可以在此页面上找到更多 R 教程。

添加评论

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