如何在 R 資料框中查詢分組值的順序?


為了找到 R 資料框中分組值的順序,我們可以使用 dplyr 包的 mutate 函式以及 rank 函式,分組將藉助 group_by 函式完成。

例如,如果我們有一個名為 df 的資料框,其中包含兩列,例如 Group 和 DV,那麼我們可以使用下面給出的命令來查詢 DV 值的分組順序:

df%%group_by(Group)%%mutate(Order=rank(DV))

示例 1

以下程式碼片段建立了一個示例資料框:

Group<-rep(LETTERS[1:5],each=4)
Score<-sample(1:50,20)
df1<-data.frame(Group,Score)
df1

建立了以下資料框

  Group  Score
1     A     13
2     A     27
3     A     50
4     A     42
5     B     43
6     B     20
7     B     45
8     B     49
9     C     31
10    C     15
11    C     26
12    C     33
13    D     40
14    D     38
15    D     12
16    D     17
17    E     16
18    E     28
19    E      5
20    E      9

要在上面建立的資料框中載入 dplyr 包並在 df1 中查詢 Score 的分組順序,請將以下程式碼新增到上面的程式碼片段中:

Group<-rep(LETTERS[1:5],each=4)
Score<-sample(1:50,20)
df1<-data.frame(Group,Score)
library(dplyr)
df1%%group_by(Group)%%mutate(Order=rank(Score))
# A tibble: 20 x 3
# Groups: Group [5]

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

Group Score Order
<chr  <int <dbl
1  A    13  1
2  A    27  2
3  A    50  4
4  A    42  3
5  B    43  2
6  B    20  1
7  B    45  3
8  B    49  4
9  C    31  3
10 C    15  1
11 C    26  2
12 C    33  4
13 D    40  4
14 D    38  3
15 D    12  1
16 D    17  2
17 E    16  3
18 E    28  4
19 E     5  1
20 E     9  2

示例 2

以下程式碼片段建立了一個示例資料框:

Category<-rep(c("I","II","III","IV"),each=5)
Sales<-sample(51:100,20)
df2<-data.frame(Category,Sales)
df2

建立了以下資料框

 Category Sales
1   I      97
2   I      66
3   I      75
4   I      80
5   I      63
6  II      69
7  II      84
8  II      72
9  II      59
10 II      65
11 III     68
12 III     73
13 III     88
14 III     93
15 III    100
16 IV      58
17 IV      83
18 IV      95
19 IV      61
20 IV      67

要在上面建立的資料框中查詢 df2 中 Sales 的分組順序,請將以下程式碼新增到上面的程式碼片段中:

Category<-rep(c("I","II","III","IV"),each=5)
Sales<-sample(51:100,20)
df2<-data.frame(Category,Sales)
df2%%group_by(Category)%%mutate(Order=rank(Sales))
# A tibble: 20 x 3
# Groups: Category [4]

輸出

如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出:

Category Sales Order
 <chr <int <dbl
1   I   97  5
2   I   66  2
3   I   75  3
4   I   80  4
5   I   63  1
6  II   69  3
7  II   84  5
8  II   72  4
9  II   59  1
10 II   65  2
11 III  68  1
12 III  73  2
13 III  88  3
14 III  93  4
15 III 100  5
16 IV   58  1
17 IV   83  4
18 IV   95  5
19 IV   61  2
20 IV   67  3

更新於: 2021年11月1日

475 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告