在 R 数据框中查找组明智的大值和小值。

要在 R 数据框中查找分组大小值,我们可以使用 dplyr 包的 mutate 函数,在 group_by 函数的帮助下可以轻松完成分组。

例如,如果我们有一个名为 df 的数据框,其中包含分组列 Grp 和数字列 Num,那么我们可以使用以下命令找到分组的大值和小值 -

df%%group_by(Gp)%%mutate(Val=ifelse(Val==max(Val),"large","small"))

示例 1

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

Group<-rep(LETTERS[1:10],each=2)

Dep_Var<-rpois(20,5)

df1<-data.frame(Group,Dep_Var)

df1

创建了以下数据框

Group Dep_Var

1  A  11

2  A   5

3  B   2

4  B   2

5  C  10

6  C   8

7  D   6

8  D   5

9  E   3

10 E   5

11 F   3

12 F   8

13 G   8

14 G   2

15 H   3

16 H   3

17 I   7

18 I   5

19 J   3

20 J   5

要加载 dplyr 包并在上面创建的数据框中的 df1 的 Group 列中为每个组查找 Dep_Var 的大小值,请将以下代码添加到上面的代码段中 -

Group<-rep(LETTERS[1:10],each=2)

Dep_Var<-rpois(20,5)

df1<-data.frame(Group,Dep_Var)

library(dplyr)

df1%%group_by(Group)%%mutate(Magnitude=ifelse(Dep_Var==max(Dep_Var),"large","small"))

# A tibble: 20 x 3

# Groups: Group [10]

输出结果

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

  Group Dep_Var Magnitude

   <chr    <int   <chr

1    A     11    large

2    A      5    small

3    B      2    large

4    B      2    large

5    C     10    large

6    C      8    small

7    D      6    large

8    D      5    small

9    E      3    small

10   E      5    large

11   F      3    small

12   F      8    large

13   G      8    large

14   G      2    small

15   H      3    large

16   H      3    large

17   I      7    large

18   I      5    small

19   J      3    small

20   J      5    large

示例 2

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

Class<-rep(1:10,each=2)

Score<-sample(20:50,20)

df2<-data.frame(Class,Score)

df2

创建了以下数据框

Class Score

1   1   44

2   1   25

3   2   40

4   2   30

5   3   34

6   3   37

7   4   36

8   4   27

9   5   38

10  5   24

11  6   29

12  6   20

13  7   47

14  7   35

15  8   45

16  8   21

17  9   49

18  9   46

19 10   31

20 10   48

要在上面创建的数据框中的 df2 的 Class 列中找到每个组的 Score 的大小值,请将以下代码添加到上面的代码段中 -

Class<-rep(1:10,each=2)

Score<-sample(20:50,20)

df2<-data.frame(Class,Score)

df2%%group_by(Class)%%mutate(Magnitude=ifelse(Score==max(Score),"large","small"))

# A tibble: 20 x 3

# Groups: Class [10]

输出结果

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

Class Score Magnitude

<int <int   <chr

1  1 44    large

2  1 25    small

3  2 40    large

4  2 30    small

5  3 34    small

6  3 37    large

7  4 36    large

8  4 27    small

9  5 38    large

10 5 24    small

11 6 29    large

12 6 20    small

13 7 47    large

14 7 35    small

15 8 45    large

16 8 21    small

17 9 49    large

18 9 46    small

19 10 31   small

20 10 48   large

以上是 在 R 数据框中查找组明智的大值和小值。 的全部内容, 来源链接: utcz.com/z/322658.html

回到顶部