首页 > 解决方案 > 如何从箱线图中提取和格式化中位数和 IQR

问题描述

我希望从我的箱线图统计中提取并格式化中位数和四分位数范围。

我设法用这行代码得到了原始结果:

b <- boxplot(len ~ dose, data = ToothGrowth)
b$stats

这给了我:

      [,1]  [,2]  [,3]
[1,]  4.20 13.60 18.50
[2,]  7.15 16.00 23.45
[3,]  9.85 19.25 25.95
[4,] 13.00 23.45 28.35
[5,] 21.50 27.30 33.90

我可以分别添加 [,1] 或 [1,] 精确一行或一列,即:我可以提取一组的最小/第一个四分位数/中位数/第三个四分位数/最大值,或者每个子组的一个统计信息:

> b$stats[2,]
[1]  7.15 16.00 23.45
> b$stats[,2]
[1] 13.60 16.00 19.25 23.45 27.30

但我想不出一种简单的方法来提取和格式化每个子组 [,1] [,2] 和 [,3] 的中位数和 IQR 以获得如下结果:

[,1] median [lower quartile-upper quartile].

我可以手动完成,但我有数百个变量要保存......任何建议将不胜感激!提前致谢

标签: rboxplotmedianextractionquartile

解决方案


如果您正在使用boxplot,请查看list(b),它将为您提供输出列表。现在要获得中位数和 IQR,这将是第 3 行(对于中位数)和 2,4(对于 IQR 边界)。

med <- round(b$stats[3, ], 2) #median
liqr<- round(b$stats[2, ], 2) #lower IQR
uiqr<- round(b$stats[4, ], 2) #upper IQR

现在根据您的预期输出,您可能希望使用某种形式的pasteas

output <- paste0(med, " [", liqr,"-" ,uiqr,"]")

希望这可以帮助。


推荐阅读