如何在R中找到分组累积平均值?

找到分组累积平均值,我们可以使用 dplyr 包的 cummean 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一个分类列 Group 和一个数值列 Response 那么可以使用下面给出的命令找到分组累积平均值 -

df%>%group_by(Group)%>%mutate(CM=cummean(Response))

示例 1

以下代码段创建了一个示例数据框 -

Group<-sample(LETTERS[1:4],20,replace=TRUE)

Score<-rpois(20,50)

df1<-data.frame(Group,Score)

df1

输出结果

创建以下数据框 -

Group Score

1  B  48

2  D  54

3  B  44

4  C  50

5  B  50

6  C  48

7  A  58

8  B  44

9  B  44

10 C  51

11 C  50

12 B  48

13 B  63

14 D  43

15 C  53

16 C  52

17 C  59

18 B  46

19 A  51

20 C  58

为了加载 dplyr 包并在 df1 中找到 Score 的分组累积平均值,请将以下代码添加到上述代码段中 -

library(dplyr)

df1 %>% group_by(Group) %>% mutate(Cum_Mean = cummean(Score))

# A tibble: 20 x 3

# Groups: Group [4]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

 Group Score Cum_Mean

 <chr> <int> <dbl>

1  B   48    48

2  D   54    54

3  B   44    46

4  C   50    50

5  B   50    47.3

6  C   48    49

7  A   58    58

8  B   44    46.5

9  B   44    46

10 C   51    49.7

11 C   50    49.8

12 B   48    46.3

13 B   63    48.7

14 D   43    48.5

15 C   53    50.4

16 C   52    50.7

17 C   59    51.9

18 B   46    48.4

19 A   51    54.5

20 C   58    52.6

示例 2

以下代码段创建了一个示例数据框 -

Department<-sample(c("Finance","Marketing","HR"),20,replace=TRUE)

Salary<-sample(20000:50000,20)

df2<-data.frame(Department,Salary)

df2

创建以下数据框 -

 Department   Salary

1   HR        20179

2   Finance   30870

3   Marketing 48467

4   HR        22429

5   Marketing 26829

6   Finance   34267

7   HR        27498

8   Marketing 38346

9   Finance   31771

10  HR        30438

11  HR        26913

12  HR        30034

13  Finance   26277

14  HR        43676

15  HR        45958

16  Finance   37371

17  HR        41023

18  HR        34838

19  Finance   44879

20  HR        20964

要在 df2 中找到 Salary 的分组累积平均值,请将以下代码添加到上述代码段中 -

df2 %>% group_by(Department) %>% mutate(Cum_Mean=cummean(Salary))

# A tibble: 20 x 3

# Groups: Department [3]

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  Department Salary  Cum_Mean

  <chr>      <int>   <dbl>

1  HR        20179   20179

2  Finance   30870   30870

3  Marketing 48467   48467

4  HR        22429   21304

5  Marketing 26829   37648

6  Finance   34267   32568.

7  HR        27498   23369.

8  Marketing 38346   37881.

9  Finance   31771   32303.

10 HR        30438   25136

11 HR        26913   25491.

12 HR        30034   26248.

13 Finance   26277   30796.

14 HR        43676   28738.

15 HR        45958   30891.

16 Finance   37371   32111.

17 HR        41023   32016.

18 HR        34838   32299.

19 Finance   44879   34239.

20 HR        20964   31268.

以上是 如何在R中找到分组累积平均值? 的全部内容, 来源链接: utcz.com/z/335436.html

回到顶部