如何在R数据框中的这些列中找到由其他列名和公共值汇总的列的平均值?
要在 R 数据框中的这些列中找到由其他列名称和公共值汇总的列的平均值,我们可以按照以下步骤操作 -
首先,创建一个数据框。
然后,使用 reshape2 包中的熔化函数熔化数据框。
之后,使用 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
执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-
S.No Grp1 Grp2 Score1 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 包中的熔化函数来熔化数据框 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.NoScore variable value1 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 31 Grp1 25.50000 26.88889 32.9
2 Grp2 27.28571 26.81818 34.0
以上是 如何在R数据框中的这些列中找到由其他列名和公共值汇总的列的平均值? 的全部内容, 来源链接: utcz.com/z/351596.html