如何在 R 中为每一行找到 n 个四分位数?\n
要为 R 数据框中的每一行找到 n 个四分位数,我们可以使用 apply 函数以及 quantile 函数。
例如,如果我们有一个名为 df 的数据框,其中包含 100 行,并且我们想为每一行找到两个四分位数,例如第一个和第三个,那么我们可以使用以下命令:
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
广告