如何在R資料框中,根據分類列值的組合來計算數值列的總和?
為了在R資料框中根據分類列值的組合計算數值列的總和,我們可以按照以下步驟操作:
- 首先,建立一個數據框。
- 然後,使用reshape2包中的recast函式和sum函式,根據分類列值的組合計算數值列的總和。
建立資料框
示例
讓我們建立一個如下所示的資料框:
> x1<-rpois(20,2) > x2<-rpois(20,5) > x3<-rpois(20,1) > x4<-rpois(20,10) > f1<-sample(LETTERS[1:3],20,replace=TRUE) > f2<-sample(letters[1:3],20,replace=TRUE) > df<-data.frame(x1,x2,x3,x4,f1,f2) > df
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因您的系統而異):
輸出
x1 x2 x3 x4 f1 f2 1 1 6 0 11 B c 2 2 3 3 16 B a 3 4 2 0 13 B b 4 1 3 0 4 B c 5 0 4 0 10 A b 6 1 8 3 8 C c 7 2 4 0 2 A c 8 0 1 1 12 A b 9 3 4 0 15 B b 10 0 1 1 4 A a 11 2 8 0 6 C b 12 1 4 1 13 C c 13 1 4 1 13 A b 14 2 6 2 11 A b 15 3 5 0 10 A a 16 1 4 0 17 A c 17 2 4 1 4 B a 18 1 4 0 11 B b 19 3 3 1 8 B c 20 4 6 3 5 A a
根據分類列值的組合計算數值列的總和
示例
使用recast函式計算df中基於f1和f2的x1、x2、x3和x4列的總和:
> x1<-rpois(20,2) > x2<-rpois(20,5) > x3<-rpois(20,1) > x4<-rpois(20,10) > f1<-sample(LETTERS[1:3],20,replace=TRUE) > f2<-sample(letters[1:3],20,replace=TRUE) > df<-data.frame(x1,x2,x3,x4,f1,f2) > library(reshape2) > recast(df,variable~f1+f2,sum)
輸出
Using f1, f2 as id variables variable A_a A_b A_c B_a B_b B_c C_b C_c 1 x1 7 3 3 4 8 5 2 2 2 x2 12 15 8 7 10 12 8 12 3 x3 4 4 0 4 0 1 0 4 4 x4 19 46 19 20 39 23 6 21
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP