如何在 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 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告