如何在 R 資料框中查詢按其他列名和這些列中的公共值彙總的列的平均值?
為了找到 R 資料框中按其他列名和這些列中的公共值彙總的列的平均值,我們可以按照以下步驟操作:
首先,建立一個數據框。
然後,使用 reshape2 包中的 melt 函式將資料框熔化。
之後,使用 dcast 函式查詢按其他列名和這些列中的公共值彙總的列的平均值。
示例
建立資料框
讓我們建立一個如下所示的資料框:
S.No<-1:25 Grp1<-sample(1:3,25,replace=TRUE) Grp2<-sample(1:3,25,replace=TRUE) Score<-sample(1:50,25) df<-data.frame(S.No,Grp1,Grp2,Score) df
輸出
執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
S.No Grp1 Grp2 Score 1 1 1 3 39 2 2 1 1 50 3 3 2 2 5 4 4 1 1 28 5 5 3 3 3 6 6 2 1 20 7 7 3 2 10 8 8 2 2 41 9 9 2 3 25 10 10 3 1 11 11 11 3 1 13 12 12 2 1 2 13 13 2 2 22 14 14 2 1 30 15 15 3 1 15 16 16 1 3 29 17 17 3 3 1 18 18 1 1 24 19 19 3 3 34 20 20 1 2 44 21 21 3 3 48 22 22 3 2 43 23 23 1 2 33 24 24 2 2 19 25 25 3 3 42
熔化資料框
使用 reshape2 包中的 melt 函式來熔化資料框 df:
S.No<-1:25
Grp1<-sample(1:3,25,replace=TRUE)
Grp2<-sample(1:3,25,replace=TRUE)
Score<-sample(1:50,25)
df<-data.frame(S.No,Grp1,Grp2,Score)
library(reshape2)
df_new<-melt(df,id.vars=c("S.No","Score"))
df_new輸出
S.No Score variable value 1 1 28 Grp1 2 2 2 14 Grp1 3 3 3 17 Grp1 2 4 4 36 Grp1 3 5 5 47 Grp1 3 6 6 27 Grp1 2 7 7 48 Grp1 1 8 8 50 Grp1 3 9 9 29 Grp1 3 10 10 20 Grp1 2 11 11 32 Grp1 1 12 12 9 Grp1 3 13 13 16 Grp1 1 14 14 3 Grp1 1 15 15 42 Grp1 3 16 16 26 Grp1 2 17 17 44 Grp1 2 18 18 39 Grp1 2 19 19 46 Grp1 1 20 20 19 Grp1 2 21 21 22 Grp1 2 22 22 23 Grp1 3 23 23 49 Grp1 3 24 24 8 Grp1 1 25 25 30 Grp1 3 26 1 28 Grp2 2 27 2 14 Grp2 2 28 3 17 Grp2 2 29 4 36 Grp2 2 30 5 47 Grp2 3 31 6 27 Grp2 1 32 7 48 Grp2 2 33 8 50 Grp2 1 34 9 29 Grp2 1 35 10 20 Grp2 2 36 11 32 Grp2 3 37 12 9 Grp2 2 38 13 16 Grp2 1 39 14 3 Grp2 1 40 15 42 Grp2 2 41 16 26 Grp2 3 42 17 44 Grp2 1 43 18 39 Grp2 2 44 19 46 Grp2 3 45 20 19 Grp2 2 46 21 22 Grp2 1 47 22 23 Grp2 2 48 23 49 Grp2 3 49 24 8 Grp2 3 50 25 30 Grp2 3
查詢按其他列名和公共值彙總的列的平均值
使用 dcast 函式查詢按列名 Grp1 和 Grp2 以及這些分組列中 1、2 和 3 的公共值彙總的 Score 的平均值:
S.No<-1:25
Grp1<-sample(1:3,25,replace=TRUE)
Grp2<-sample(1:3,25,replace=TRUE)
Score<-sample(1:50,25)
df<-data.frame(S.No,Grp1,Grp2,Score)
library(reshape2)
df_new<-melt(df,id.vars=c("S.No","Score"))
dcast(df_new,variable~value,value.var="Score",fun.aggregate=mean)輸出
variable 1 2 3 1 Grp1 25.50000 26.88889 32.9 2 Grp2 27.28571 26.81818 34.0
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP