如何在R数据帧中找到因子列的频率表?

如果我们在R数据帧中有因子列,那么我们要查找所有因子列的每个因子水平的频率。这可以通过带有表函数的sapply函数来完成。例如,如果我们有一个名为df的数据帧,其中包含一些因子列,则可以使用command创建因子列的频率表sapply(df,table)。

例1

考虑以下数据帧-

> x1<-sample(LETTERS[1:4],20,replace=TRUE)
> x2<-sample(letters[1:4],20,replace=TRUE)
> df1<-data.frame(x1,x2)
> df1
输出结果
   x1 x2
1  D  a
2  D  b
3  D  c
4  D  b
5  D  c
6  C  a
7  C  a
8  B  a
9  A  a
10 C  c
11 D  a
12 D  b
13 D  b
14 A  c
15 C  b
16 D  a
17 A  b
18 A  b
19 B  c
20 C  b

在df1中查找因子列的频率表-

> sapply(df1,table)
$x1
输出结果
A B C D
4 2 5 9

示例

$x2
输出结果
a b c
7 8 5

例2

> y1<-sample(c("India","Russia","UK"),20,replace=TRUE)
> y2<-sample(c("Male","Female"),20,replace=TRUE)
> df2<-data.frame(y1,y2)
> df2
输出结果
    y1      y2
1  India    Male
2  UK     Female
3  Russia   Male
4  India  Female
5  India  Female
6  India    Male
7  UK     Female
8  Russia   Male
9  UK       Male
10 India    Male
11 Russia   Male
12 UK       Male
13 UK     Female
14 India  Female
15 India  Female
16 Russia Female
17 Russia Female
18 Russia Female
19 India  Female
20 India  Female

在df2中查找因子列的频率表-

> sapply(df2,table)
$y1
输出结果
India Russia UK
  9     6    5

示例

$y2
输出结果
Female Male
  12    8