如何在r中创建多个变量的频率表


要计算 R 中数据框中多个变量的频率表,可以使用apply()函数,该函数使用以下语法:

申请(X,有趣的保证金)

金子:

  • X:数组、矩阵或数据块
  • MARGIN:在行 (1) 或列 (2) 上应用函数
  • FUN:要应用的函数

以下示例展示了如何在实践中使用此语法。

示例 1:R 中所有变量的频率表

以下代码显示如何计算数据框中每个变量的频率表:

 #create data frame
df <- data. frame (var1=c(1, 1, 2, 2, 2, 2, 3),
                 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
                 var3=c(6, 7, 7, 7, 8, 8, 9))

#view first few rows of data frame
head(df)

  var1 var2 var3
1 1 To 6
2 1 A 7
3 2 To 7
4 2 To 7
5 2 B 8
6 2 B 8

#calculate frequency table for every variable in data frame
apply((df), 2, table)

$var1

1 2 3 
2 4 1 

$var2

AB
4 3 

$var3

6 7 8 9 
1 3 2 1

结果是三个频率表——一个对应数据框中的每个变量。

以下是如何解释第一个频率表:

  • 1在“var1”列中出现两次
  • 2在“var2”列中出现 4 次
  • 3在“var3”列中出现 1 次

其他频率表可以用同样的方式解释。

示例 2:R 中特定变量的频率表

以下代码显示了如何计算数据框中特定变量的频率表

 #create data frame
df <- data. frame (var1=c(1, 1, 2, 2, 2, 2, 3),
                 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
                 var3=c(6, 7, 7, 7, 8, 8, 9))

#calculate frequency table for var1 and var3 columns
apply((df[c(' var1 ', ' var3 ')]), 2, table)

$var1

1 2 3 
2 4 1

$var3

6 7 8 9 
1 3 2 1

示例 3:R 中除一个变量之外的所有变量的频率表

假设我们在数据框中有一个索引列,并且我们想要为数据框中索引列之外的每个变量计算频率表。

以下代码展示了如何执行此操作:

 #create data frame
df <- data. frame (index=c(1, 2, 3, 4, 5, 6, 7),
                 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
                 var3=c(6, 7, 7, 7, 8, 8, 9))

#calculate frequency table for all columns except index column
apply((df[-1]), 2, table)

$var2

AB
4 3 

$var3

6 7 8 9 
1 3 2 1

其他资源

如何在R中创建双向表
如何在 R 中创建相对频率直方图

添加评论

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