如何在 R 中擷取具有最小值的資料框列?


要擷取具有最小值的資料框列,我們需要使用 `min` 函式在 `cut` 函式中指定最小值,並將 `include.lowest` 引數設定為 `TRUE`。我們還可以指定最大值,以便在擷取列時也將最大值考慮在內。

示例 1

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

x<-rpois(20,5)
df1<-data.frame(x)
df1

建立了以下資料框 -

   x
1  6
2  7
3  4
4  3
5  6
6  2
7  7
8  2
9  3
10 2
11 5
12 4
13 3
14 8
15 11
16 2
17 6
18 3
19 3
20 4

要擷取具有最小值和最大值的列 x,請將以下程式碼新增到上述程式碼片段中 -

cut(df1$x,c(min(df1$x),3:10,max(df1$x)),include.lowest=TRUE)

輸出

如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出 -

[1] (5,6] (6,7] (3,4] [2,3] (5,6] [2,3] (6,7] [2,3] [2,3]
[10] [2,3] (4,5] (3,4] [2,3] (7,8] (10,11] [2,3] (5,6] [2,3]
[19] [2,3] (3,4]
Levels: [2,3] (3,4] (4,5] (5,6] (6,7] (7,8] (8,9] (9,10] (10,11]

示例 2

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

y<-rpois(20,10)
df2<-data.frame(y)
df2

建立了以下資料框 -

    y
1  16
2  10
3  11
4   5
5  12
6  10
7   8
8   6
9  11
10  3
11 13
12 12
13 10
14 11
15  8
16  9
17  7
18  8
19  8
20  9

要擷取具有最小值和最大值的列 y,請將以下程式碼新增到上述程式碼片段中 -

cut(df2$y,c(min(df2$y),4:15,max(df2$y)),include.lowest=TRUE)

輸出

如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出 -

[1] (15,16] (9,10] (10,11] (4,5] (11,12] (9,10] (7,8] (5,6] (10,11]
[10] [3,4] (12,13] (11,12] (9,10] (10,11] (7,8] (8,9] (6,7] (7,8]
[19] (7,8] (8,9]
13 Levels: [3,4] (4,5] (5,6] (6,7] (7,8] (8,9] (9,10] (10,11] ... (15,16]

示例 3

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

df3<-data.frame(z)
df3

建立了以下資料框 -

   z
1  3
2  2
3  1
4  2
5  1
6  6
7  2
8  2
9  2
10 1
11 0
12 1
13 1
14 1
15 2
16 1
17 3
18 0
19 4
20 2

要擷取具有最小值和最大值的列 z,請將以下程式碼新增到上述程式碼片段中 -

cut(df3$z,c(min(df3$z),1:5,max(df3$z)),include.lowest=TRUE)

輸出

如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出 -

[1] (2,3] (1,2] [0,1] (1,2] [0,1] (5,6] (1,2] (1,2] (1,2] [0,1] [0,1] [0,1]
[13] [0,1] [0,1] (1,2] [0,1] (2,3] [0,1] (3,4] (1,2]
Levels: [0,1] (1,2] (2,3] (3,4] (4,5] (5,6]

更新於: 2021-11-09

483 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告