为 R 数据框中每个值的列创建四分位数列。


任何数值数据都可以使用三个四分位数将其划分为四个部分,第一个四分位数在 25%,第二个四分位数在 50%,第三个四分位数在 75%,因此将有四个部分来表示一组数据中的前 25%、第二 25%、第三 25% 和最后 25%。

如果我们想为 R 数据框中每个值的列创建一个四分位数(1 到 4)列,则可以使用 quantile 函数和 cut 函数,如下面的示例所示。

示例 1

以下代码片段创建了一个示例数据框 -

x<-sample(1:50,20)
df1<-data.frame(x)
df1

创建了以下数据框

    x
1   4
2  44
3   1
4  14
5   5
6  18
7   3
8  16
9  41
10 10
11 35
12 48
13 36
14 23
15 17
16 19
17 11
18 43
19 28
20 29

要为上面创建的数据框中 df1 的列 x 创建一个四分位数列,请将以下代码添加到上述代码片段中 -

x<-sample(1:50,20)
df1<-data.frame(x)
df1$Quartile<-cut(df1$x,quantile(df1$x),include.lowest=TRUE,labels=FALSE)
df1

输出

如果您将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

    x Quartile
1   4   1
2  44   4
3   1   1
4  14   2
5   5   1
6  18   2
7   3   1
8  16   2
9  41   4
10 10   1
11 35   3
12 48   4
13 36   4
14 23   3
15 17   2
16 19   3
17 11   2
18 43   4
19 28   3
20 29   3

示例 2

以下代码片段创建了一个示例数据框 -

y<-rnorm(20)
df2<-data.frame(y)
df2

创建了以下数据框

           y
1  -0.08949509
2  -0.12711363
3  -0.52805367
4   0.08087408
5  -1.35069115
6   0.13678392
7  -0.41386292
8  -0.80830050
9  -1.13387570
10 -1.56282579
11 -1.27191819
12  1.10834061
13 -1.53450425
14  0.83568645
15 -0.52896185
16  0.45211521
17 -1.45162982
18 -0.63935428
19  1.71258558
20  1.09091493

要为上面创建的数据框中 df2 的列 y 创建一个四分位数列,请将以下代码添加到上述代码片段中 -

y<-rnorm(20)
df2<-data.frame(y)
df2$Quartile<-cut(df2$y,quantile(df2$y),include.lowest=TRUE,labels=FALSE)
df2

输出

如果您将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

            y Quartile
1  -0.08949509    3
2  -0.12711363    3
3  -0.52805367    2
4   0.08087408    3
5  -1.35069115    1
6   0.13678392    3
7  -0.41386292    3
8  -0.80830050    2
9  -1.13387570    2
10 -1.56282579    1
11 -1.27191819    1
12  1.10834061    4
13 -1.53450425    1
14  0.83568645    4
15 -0.52896185    2
16  0.45211521    4
17 -1.45162982    1
18 -0.63935428    2
19  1.71258558    4
20  1.09091493    4

更新时间: 2021 年 11 月 5 日

3K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告