Я создаю гистограммы в R, отображающие средние оценки людей и их когортные оценки в различных шкалах. Тем не менее, я также хочу показать диапазон для отдельных баллов по шкале.
Например, если у меня средний балл 3 по шкале, состоящей из 5 предметов с 5-балльной шкалой Лайкерта, я также хочу посмотреть, варьировался ли мой индивидуальный рейтинг предметов от 1-5 (имеется в виду Iбыло повсеместно, в среднем 3) или 2-4 (то есть я более последовательно набирал около 3).
Изначально я просто собирался делать шкалы ошибок, но мне нужно, чтобы он отображал диапазон оценок, а не стандартную ошибку или доверительный интервал. Я использую ggplot2 и в идеале мне нужно придерживаться этого пакета R из-за некоторых других кодировок, для которых он мне нужен.
# Make some data
dat <- data.frame(Item1=c(1,2,2,4,5), Item2=c(3,3,1,5,2), Item3=c(1,5,5,4,5),
Item4=c(1,4,3,4,2), Item5=c(3,2,3,4,3))
# Find mean scores
for (i in 1:nrow(dat)) {
dat$ScaleMean[i] <- round(rowMeans(dat, na.rm=T)[i],2)
}
# Find cohort mean
dat$CoScaleMean <- round(mean(dat$ScaleMean, na.rm=T), 2)
# Add participant IDs
dat$ID <- c(1,2,3,4,5)
# Create long data format
dat.long3 <- melt(dat, id.vars=c('ID'),
measure.vars=c('ScaleMean', 'CoScaleMean'))
# Rename variable and value columns
colnames(dat.long3)[c(2,3)] <- c('Scale', 'Score')
# Bar chart
dat.long3 %>%
filter(ID == 1) %>%
ggplot(aes(x=Scale, y=Score)) +
geom_bar(aes(x=Scale, y=Score, fill=Scale), stat = 'identity', width=.9, alpha=1, position='dodge') +
coord_flip() +
ggtitle(label='Scale Name') +
scale_y_continuous(breaks=seq(0, 5, 1), limits = c(0, 5), expand=c(0,0)) +
scale_x_discrete(labels=element_blank()) +
scale_fill_manual(label=paste0(c('Your Score', 'Cohort Score')), values=c('gold', 'darkorange')) +
guides(fill = guide_legend(nrow = 2, reverse = TRUE)) +
geom_text(aes(x=Scale, label=Score, y=1), size=5, color='#000000')
Это для другого человека, который запрашивает визуальное представление в диаграмме (не таблица) и должен держать его в форме гистограммы (без рамок и т. д.). Я не уверен, какие еще есть варианты для достижения этой цели, если таковые имеются? Ваша помощь очень ценится!