这个问题是我之前提出的关于李克特数据可视化的问题的扩展。另请参阅此链接以获取详细信息和简单示例。
假设我们有一个mydata
看起来像这样的数据框(对李克特量表 1-5 的问题的答案),有几个人 P:
P Q1 Q2 ...
1 1 4 1
2 2 3 4
3 NA 1 4
通过使用
prepareddatabarplot <- select(mydata,P,Q1,Q2) %>% gather(key='Question_num', value='Antwort', -P)
我整理了数据并使用了
prepareddatabarplot %>% drop_na()
摆脱所有的NA。现在我想要一个堆积条形图(每个问题的垂直条),其中每个答案的百分比(1-5,例如“完全同意”,“完全不同意”等)被绘制到条形图中,就像在这个答案中一样帖子的最底部。起初,作者使用
ggplot(questions, aes(x=Question_num)) +
geom_bar(aes(fill=Answer)) +...
fill=Answer
当我的数据框中有 NA 时,我是否理解正确?我的意思是:如果 Q1 中有 5 个 NA(以及 10 个答案“1”和 5 个答案“2”)和 Q2 中有 0 个 NA(以及 15 个答案“1”和 5 个答案“2”) - 是 10 Q1 的有效答案“1”显示为整个垂直条的 2/3,与 Q2 的条具有相同的高度?
然后那里的作者使用
aes(y=freq, label=percent(freq/20,1), group=Answer)
计算给定有 20 人回答问题的百分比。Freq 是每个答案的计数(答案可能性是 1、2、3、4、5 或说“完全同意”等)。问题是,这仅适用于没有 NA 的数据,因为这样可以将频率除以 20,因为每个问题有 20 个有效答案。
如果有 NA,我该如何处理 - 因此对于堆积条形图中可视化的每个问题,可能会有不同数量的有效答案?
这是我问题的第 1 部分。第 2 部分:这是同一个问题,但考虑到答案 (1-5) 的各自值,有一个箱线图。我在一个图表中为每个问题绘制了 2 个箱线图。
再次关于在我的数据中包含“NA”。下面的代码是否考虑到例如在Q1
(使用之前的示例)中,如果通过使用删除整理数据中的 NAdrop.na()
并相应地绘制箱线图,则减少 5 个值 - 也就是说,对于 Q1 和 20 仅使用 15 个答案Q2的答案?:
preparedataboxplot <- select(mydata,P,Q1,Q2,) %>% gather(key='Question_num', value='Antwort', -P)
#preparedataboxplot <- preparedataboxplot %>% drop_na()
preparedataboxplot$Antwort<-unlist(preparedataboxplot$Antwort)
ggplot(preparedataboxplot,aes(x=factor(Question_num),y=Antwort))+
stat_boxplot(geom='errorbar',width=0.8)+
geom_boxplot(width=0.8)