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

r programmingserver side programmingprogramming

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

如果我们想为 R 数据框列中的每个值创建一个四分位数(1 到 4)列,那么我们可以使用分位数函数和 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

相关文章