如何为R中的每一行找到n个四分位数?

要找到 R 数据框中每一行的 n 个四分位数,我们可以使用 apply 函数和 quantile 函数。

例如,如果我们有一个名为 df 的数据框,其中包含一百行,并且我们想为每一行找到两个四分位数,比如第一和第三,那么我们可以使用下面提到的命令 -

apply(df,1,quantile,c(0.25,0.75))

示例 1

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

x1<-rpois(20,1)
x2<-rpois(20,2)
x3<-rpois(20,5)
x4<-rpois(20,10)
df1<-data.frame(x1,x2,x3,x4)
df1

创建以下数据框 -

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

要查找 df1 中每一行的第一个四分位数、第二个四分位数和第三个四分位数,请将以下代码添加到上述代码段中 -

x1<-rpois(20,1)
x2<-rpois(20,2)
x3<-rpois(20,5)
x4<-rpois(20,10)
df1<-data.frame(x1,x2,x3,x4)
apply(df1,1,quantile,c(0.25,0.50,0.75))
输出结果

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

    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
25% 1.50 1.5  1.75 2.5  1.0  2.25 1.75 0.75 3.25 3.50  3.75  1.75  1.75  0.75
50% 3.50 3.5  4.00 4.5  5.0  3.50 3.50 3.00 6.00 4.50  6.00  5.50  5.00  1.50
75% 6.75 6.5 6.75 6.5 9.5 5.00 5.50 6.25 8.75 7.25 7.50 9.25 8.75 3.75
  [,15] [,16] [,17] [,18] [,19] [,20]
25% 0.75 2.50 0.75  1.00  1.00  2.25
50% 2.00 4.50 2.00  1.50  4.00  4.00
75% 4.75 7.25 5.00  3.25  7.25  6.00

示例 2

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

y1<-round(rnorm(20),2)
y2<-round(rnorm(20),2)
y3<-round(rnorm(20),2)
df2<-data.frame(y1,y2,y3)
df2

创建以下数据框 -

     y1     y2     y3
1  -1.41   1.96  -0.23
2  -0.27  -0.05  -0.51
3   0.72   0.40  -0.93
4   1.07   1.68  -0.82
5   0.34  -0.86  -0.29
6   1.67  -0.13   1.60
7   0.38   0.57  -0.28
8  -0.91   0.39   0.61
9   0.99   0.75   0.21
10  0.40   0.74  -2.61
11  1.52   0.97   0.92
12  1.35   0.14   0.04
13 -0.51   0.49  -0.29
14  0.46   0.07  -1.62
15 -0.51  -1.55   0.81
16 -0.65  -0.20   0.96
17  0.68  -0.75   0.65
18 -0.34   0.22  -0.26
19 -0.59  -0.28  -0.09
20  1.98   0.85   0.15

要查找 df1 中每一行的第一个四分位数、第二个四分位数和第三个四分位数,请将以下代码添加到上述代码段中 -

apply(df1,1,quantile,c(0.25,0.75))
输出结果

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

    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
25% 1.50 1.5  1.75 2.5  1.0  2.25 1.75 0.75 3.25 3.50  3.75  1.75  1.75  0.75
75% 6.75 6.5  6.75 6.5  9.5  5.00 5.50 6.25 8.75 7.25  7.50  9.25  8.75  3.75
     [,15] [,16] [,17] [,18] [,19] [,20]
25% 0.75  2.50   0.75  1.00  1.00  2.25
75% 4.75  7.25   5.00  3.25  7.25  6.00