如何在 R 数据框中查找每个分组的绝对最大值?


要查找 R 数据框中每个分组的绝对最大值,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。

  • 然后,使用 dplyr 包的 summarise_each 函数以及 which.max 和 abs 函数,在使用 group_by 分组后查找每个分组的绝对最大值。

示例 1

创建数据框

让我们创建一个如下所示的数据框:

x<-rnorm(25)
Grp<-sample(LETTERS[1:10],25,replace=TRUE)
df<-data.frame(x,Grp)
df

输出

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

      x       Grp
1   0.44813793 I
2  -0.42762853 F
3   1.84217825 D
4  -1.12661531 H
5   0.16377743 E
6  -0.30519746 F
7   1.68274689 D
8   0.20418659 C
9  -0.45494028 J
10 -0.80892645 G
11 -1.79420007 I
12  0.50946053 F
13  0.01846558 J
14  0.94334983 B
15 -0.41051915 A
16  0.85902521 I
17 -0.07774155 I
18 -0.14128810 C
19 -0.20461102 G
20  0.11894428 F
21  0.71705698 C
22  0.71409822 D
23  0.62682371 A
24 -0.03779485 F
25  0.34670072 A

查找每个分组的绝对最大值

使用 dplyr 包的 summarise_each 函数以及 which.max 和 abs 函数,查找列 x 在使用 group_by 分组后每个分组的绝对最大值,如下所示:

x<-rnorm(25)
Grp<-sample(LETTERS[1:10],25,replace=TRUE)
df<-data.frame(x,Grp)
library(dplyr)
df %>% group_by(Grp) %>% summarise_each(funs(.[which.max(abs(.))]))

输出

# A tibble: 10 x 2
   Grp  x
 <chr> <dbl>
1  A   0.627
2  B   0.943
3  C   0.717
4  D   1.84
5  E   0.164
6  F   0.509
7  G  -0.809
8  H  -1.13
9  I  -1.79
10 J  -0.455

示例 2

创建数据框

让我们创建一个如下所示的数据框:

DV<-sample(-20:20,25)
Gender<-sample(c("Male","Female"),25,replace=TRUE)
dat<-data.frame(DV,Gender)
dat

输出

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

    DV Gender
1  -16 Male
2  -18 Female
3   20 Male
4   10 Female
5   1  Female
6  -1  Male
7   11 Male
8  -14 Female
9   4  Male
10 -17 Female
11 -9  Female
12   9 Female
13  12 Male
14   5 Male
15  -7 Male
16  14 Female
17   8 Female
18  19 Female
19 -8  Male
20 -19 Male
21  6  Male
22 18  Male
23 -3  Male
24 -5  Female
25 13  Female

查找每个分组的绝对最大值

使用 dplyr 包的 summarise_each 函数以及 which.max 和 abs 函数,查找列 DV 在使用 group_by 分组后每个分组的绝对最大值,如下所示:

DV<-sample(-20:20,25)
Gender<-sample(c("Male","Female"),25,replace=TRUE)
dat<-data.frame(DV,Gender)
library(dplyr)
dat %>% group_by(Gender) %>% summarise_each(funs(.[which.max(abs(.))]))

输出

# A tibble: 2 x 2
Gender    DV
 <chr>   <int>
1 Female -20
2 Male    17

更新于: 2021年11月12日

967 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告