如何从箱线图中提取和格式化中值和 IQR

How to extract and format Median and IQR from a boxplot

我希望从我的箱线图统计数据中提取中值和四分位距并设置格式。

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

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,],即:我可以为一组或一组提取 min/1st quartile/median/3rd quartile/max每个子组的统计数据示例:

> 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].

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

如果您正在使用 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

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

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

希望对您有所帮助。