如何在R中根據因子列的值查詢頻率總和?
通常,我們在因子列中具有重複值,這意味著一個因子列具有多個水平,並且這些水平中的每一個都出現很多次。在這種情況下,如果我們有一個頻率列,那麼我們希望根據因子列的值查詢該頻率的總和,這可以透過使用聚合函式來完成。
示例
考慮以下資料框 -
> set.seed(109) > Class<-rep(sample(LETTERS[1:5],4),times=5) > Frequency<-sample(1:10,20,replace=TRUE) > df1<-data.frame(Class,Frequency) > df1
輸出
Class Frequency 1 E 9 2 D 5 3 B 10 4 C 10 5 E 7 6 D 10 7 B 9 8 C 5 9 E 8 10 D 7 11 B 1 12 C 3 13 E 5 14 D 10 15 B 2 16 C 3 17 E 9 18 D 3 19 B 2 20 C 9
查詢每個類別的頻率總和 -
> aggregate(df1["Frequency"],by=df1["Class"],sum)
輸出
Class Frequency 1 B 24 2 C 30 3 D 35 4 E 38
讓我們看看另一個例子 -
示例
> Metal<-rep(c("Iron","Nickel","Lead","Zinc","Tin","Sodium","Silver"),times=5)
> Quantity<-sample(20:50,35,replace=TRUE)
> df2<-data.frame(Metal,Quantity)
> head(df2,10)Metal Quantity 1 Iron 43 2 Nickel 33 3 Lead 25 4 Zinc 24 5 Tin 27 6 Sodium 34 7 Silver 31 8 Iron 37 9 Nickel 36 10 Lead 24 > tail(df2,10) Metal Quantity 26 Tin 49 27 Sodium 43 28 Silver 47 29 Iron 28 30 Nickel 41 31 Lead 21 32 Zinc 33 33 Tin 44 34 Sodium 34 35 Silver 33
> aggregate(df2["Quantity"],by=df2["Metal"],sum)
輸出
Metal Quantity 1 Iron 157 2 Lead 148 3 Nickel 174 4 Silver 165 5 Sodium 161 6 Tin 192 7 Zinc 155
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP