Условно сгруппированные гистограммы из моего набора данных
-
19-09-2019 - |
Вопрос
Мой текущий набор данных data.df
поступило от около 420 студентов, которые прошли опрос из 8 вопросов под руководством одного из 3 преподавателей. escore
меня интересует исходящая переменная.
'data.frame': 426 obs. of 10 variables:
$ ques01: int 1 1 1 1 1 1 0 0 0 1 ...
$ ques02: int 0 0 1 1 1 1 1 1 1 1 ...
$ ques03: int 0 0 1 1 0 0 1 1 0 1 ...
$ ques04: int 1 0 1 1 1 1 1 1 1 1 ...
$ ques05: int 0 0 0 0 1 0 0 0 0 0 ...
$ ques06: int 1 0 1 1 0 1 1 1 1 1 ...
$ ques07: int 0 0 1 1 0 1 1 0 0 1 ...
$ ques08: int 0 0 1 1 1 0 1 1 0 1 ...
$ inst : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
$ escore: int 3 1 5 5 3 3 4 4 2 5 ...
Мне интересно, как я могу создать escore
гистограммы, условно разделенные по значению inst
для данного наблюдения.В моей голове псевдокод мог бы выглядеть так:
par(mfrow=c(1,3))
hist(escore, data.df$inst = 1)
hist(escore, data.df$inst = 2)
hist(escore, data.df$inst = 3)
но это, конечно, не сработает :-(
В идеале мои гистограммы выглядели бы так:
Как обычно, я чувствую, что должен быть простой способ сделать это.В каком бы «условном/групповом» смысле я ни мог извлечь эти графики из своих данных, я предполагаю, что это получил быть обобщаемым для всех видов графиков, которые вы хотите построить на основе определенных условий.
Кроме того, мне очень жаль, если на этот вопрос уже был дан ответ.Моя основная трудность заключается в том, чтобы придумать, как задать вопрос так, чтобы это имело смысл.
Заранее спасибо за вашу помощь!
Решение
Используйте пакет решетки:
library(lattice)
histogram( ~ escore | inst, data=X)
если X
это ваш объект data.frame.
Другие советы
Вы также можете сделать это в ggplot2:
data.df <- data.frame(inst = factor(sample(3, 426, replace=TRUE)),
escore = sample(5, 426, replace=TRUE))
qplot(escore, fill=inst, data=data.df) + facet_wrap(~inst, ncol=3)
альтернативный текст http://www.cs.princeton.edu/~jcone/hists.png