如何在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 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 包中的熔化函数来熔化数据框 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 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

以上是 如何在R数据框中的这些列中找到由其他列名和公共值汇总的列的平均值? 的全部内容, 来源链接: utcz.com/z/351596.html

回到顶部