如何在 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.