如何在 R 資料框中同時找到分組平均值和分組總和?
要同時找到分組平均值和分組總和,我們可以先將資料框轉換為 data.table 物件,然後應用 data.table 物件組的 sum 函式和 mean 函式,如下面的示例所示。
示例 1
以下程式碼片段建立了一個示例資料框 -
Group<-sample(LETTERS[1:4],20,replace=TRUE) Rate<-rpois(20,5) Score<-rpois(20,2) df1<-data.frame(Group,Rate,Score) df1
建立了以下資料框 -
Group Rate Score 1 B 5 3 2 A 8 3 3 B 5 3 4 D 9 2 5 D 4 3 6 D 4 1 7 D 8 3 8 C 5 3 9 C 4 1 10 D 6 4 11 D 4 4 12 C 5 1 13 D 7 2 14 C 4 0 15 C 3 1 16 B 1 1 17 C 3 2 18 D 3 2 19 B 2 4 20 C 4 3
要載入 data.table 包,將 df1 轉換為 data.table 物件並找到分組平均值和分組總和,請將以下程式碼新增到上述程式碼片段中 -;
library(data.table) DT1<-data.table(df1) DT1[,list(Rate=sum(Rate),Score=mean(Score)),by="Group"]
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
Group Rate Score 1: B 13 2.750000 2: A 8 3.000000 3: D 45 2.625000 4: C 28 1.571429
示例 2
以下程式碼片段建立了一個示例資料框 -
Class<-sample(c("First","Second","Third"),20,replace=TRUE) Price<-sample(200:1000,20) Sales<-sample(50:100,20) df2<-data.frame(Class,Price,Sales) df2
建立了以下資料框 -
Class Price Sales 1 Third 494 89 2 Second 222 90 3 First 466 53 4 First 425 94 5 First 567 66 6 Second 526 95 7 Third 443 97 8 Third 614 96 9 First 605 50 10 First 590 100 11 Second 853 92 12 First 818 73 13 Third 936 63 14 Second 932 68 15 First 677 88 16 First 851 80 17 Second 395 65 18 First 519 70 19 Second 804 77 20 Second 420 84
要將 df2 轉換為 data.table 物件並找到分組平均值和分組總和,請將以下程式碼新增到上述程式碼片段中 -
DT2<-data.table(df2) DT2[,list(Sales=sum(Sales),Price=mean(Price)),by="Class"]
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
Class Sales Price 1: Third 345 621.7500 2: Second 571 593.1429 3: First 674 613.1111
廣告