如何在R資料框列中選擇小於或大於特定百分位數的值?


百分位數將一組數值分成一百組,如果數值大小為100,則分成單個值。我們可以找到R資料框數值列的百分位數,因此,也可以根據這些百分位數選擇列的值。為此,我們可以使用分位數函式。

示例

考慮以下資料框:

set.seed(111)
x<-sample(0:15,30,replace=TRUE) df<-data.frame(x)
df

輸出

      x
1    13
2    10
3    3
4    2
5    14
6    8
7    10
8    4
9    2
10    11
11    7
12    9
13    0
14    12
15    12
16    9
17    3
18    14
19    7
20    13
21    9
22    8
23    7
24    10
25    15
26    0
27    10
28    6
29    4
30    14

查詢df中x小於或等於某個百分位數的值:

df[df$x<quantile(df$x,0.75),]

[1] 10 3 2 8 10 4 2 11 7 9 0 9 3 7 9 8 7 10 0 10 6 4

df[df$x<quantile(df$x,0.25),]

[1] 3 2 4 2 0 3 0 4

df[df$x<quantile(df$x,0.50),]

[1] 3 2 8 4 2 7 0 3 7 8 7 0 6 4

df[df$x<quantile(df$x,0.90),]

[1] 13 10 3 2 8 10 4 2 11 7 9 0 12 12 9 3 7 13 9 8 7 10 0 10 6
[26] 4

df[df$x<quantile(df$x,0.95),]

[1] 13 10 3 2 8 10 4 2 11 7 9 0 12 12 9 3 7 13 9 8 7 10 0 10 6
[26] 4

df[df$x<quantile(df$x,0.99),]

[1] 13 10 3 2 14 8 10 4 2 11 7 9 0 12 12 9 3 14 7 13 9 8 7 10 0
[26] 10 6 4 14

df[df$x<quantile(df$x,0.10),]

[1] 0 0

df[df$x<quantile(df$x,0.05),]

[1] 0 0

df[df$x<quantile(df$x,0.20),]

[1] 3 2 2 0 3 0

df[df$x<quantile(df$x,0.30),]

[1] 3 2 4 2 0 3 0 6 4

df[df$x>quantile(df$x,0.05),]

[1] 13 10 3 2 14 8 10 4 2 11 7 9 12 12 9 3 14 7 13 9 8 7 10 15 10 [26] 6 4 14

df[df$x>quantile(df$x,0.10),]

[1] 13 10 3 14 8 10 4 11 7 9 12 12 9 3 14 7 13 9 8 7 10 15 10 6 4 [26] 14

df[df$x>quantile(df$x,0.20),]

[1] 13 10 14 8 10 4 11 7 9 12 12 9 14 7 13 9 8 7 10 15 10 6 4 14

df[df$x>quantile(df$x,0.25),]

[1] 13 10 14 8 10 11 7 9 12 12 9 14 7 13 9 8 7 10 15 10 6 14

df[df$x>quantile(df$x,0.60),]

[1] 13 14 11 12 12 14 13 15 14

df[df$x>quantile(df$x,0.70),]

[1] 13 14 11 12 12 14 13 15 14

df[df$x>quantile(df$x,0.75),]

[1] 13 14 12 12 14 13 15 14

df[df$x>quantile(df$x,0.80),]

[1] 13 14 14 13 15 14

df[df$x>quantile(df$x,0.90),]

[1] 15

df[df$x>quantile(df$x,0.95),]

[1] 15

更新於:2020年10月8日

570 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告