如何在 R 中创建 data.table 的频数表?


如果我们有一个 data.table 对象或一个转换为 data.table 的数据框,并且它有一个因子列,那么我们可能希望创建一个频数表,该表显示每个因子具有的值的数量或因子水平的计数。这是一种数据汇总方法,可以帮助我们了解因子水平出现情况的变化。如果我们有一个 data.table 对象,这可以通过一行代码轻松完成,否则我们需要先转换对象。

示例

考虑以下数据框 -

 现场演示

Group<-sample(c("A","B","C","D"),20,replace=TRUE)
Frequency<-sample(1:50,20)
df1<-data.frame(Group,Frequency)
df1

输出

 Group Frequency
1   A    11
2   B    19
3   A    41
4   D    24
5   A    22
6   B    26
7   C    46
8   C    4
9   A    45
10  C    44
11  A    50
12  C    20
13  B    27
14  D    12
15  A    34
16  B    6
17  C    35
18  D    32
19  A    42
20  D    30

加载 data.table 包并将数据框 df1 读取为 data.table -

示例

library(data.table)
df1<-as.data.table(df1)

查找 df1 的频数表,它现在是一个 data.table 对象 -

示例

df1[,.N,by=Group]

输出

 Group N
1: A   7
2: B   4
3: D   4
4: C   5

让我们看另一个例子 -

示例

 现场演示

Class<-sample(c("1","2","3","4","5"),20,replace=TRUE)
Scores<-sample(1:100,20)
df2<-data.frame(Class,Scores)
df2

输出

 Class Scores
1  2    45
2  5    66
3  4    61
4  5    96
5  3    27
6  5    94
7  5    51
8  3    98
9  1    14
10 3    83
11 3    6
12 1    16
13 1    18
14 1    35
15 2    70
16 4    67
17 1    63
18 5    31
19 1    58
20 4    15

示例

df2<-as.data.table(df2)
df2[,.N,by=Class]

输出

 Class N
1: 2   2
2: 5   5
3: 4   3
4: 3   4
5: 1   6

更新于: 2020-09-08

420 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.