Как извлечь и отформатировать медиану и IQR из коробочного сюжета - PullRequest
0 голосов
/ 13 мая 2019

Я хочу извлечь и отформатировать средний и межквартильный диапазоны из моей статистики по коробочному графику.

Мне удалось получить необработанные результаты с помощью этой строки кода:

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 / 1-й квартиль / медиана / 3-й квартиль / макс для одной группы ИЛИ один показатель для каждой подгруппы в качестве примера :

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

но я не могу найти простой способ извлечь и отформатировать медиану и IQR для каждой подгруппы [, 1] [, 2] и [, 3], чтобы получить что-то вроде этого:

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

Я мог бы сделать это вручную, но у меня есть сотни переменных для сохранения ... Любое предложение будет высоко ценится! Спасибо заранее

1 Ответ

1 голос
/ 13 мая 2019

Если вы используете 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,"]")

Надеюсь, это поможет.

...