0

我是 R 软件的新手,正在使用不同的数据集。但是最近我在创建条形图时遇到了一个问题,我没有原始数据集但有结果,例如百分比,不同变量的数据集的频率。

我的数据集在 excel 文件中看起来像这样。我想用这些信息创建一个堆叠或分组的条形图,并比较两所大学之间的抑郁程度。在抑郁水平中,第一个值代表 NSU,第二个值代表 DIU。

University:  NSU, DIU;
No Depression: 59.7%, 40.3%
; Mild: 55.2%, 44.8%
; Moderate: 51.1%, 48.9%
; Mod.Severe: 53.3%, 46.7%
; Severe: 50%, 50%

我试图用我所拥有的信息创建一个数据框。并成功地从中创建了一个条形图。但我对此并不满意。我想要一个更具体的图形表示。

mydf <- data.frame( Normal=c(NSU=59.7, DIU=40.3), 
  Mild=c(55.2,44.8), 
  Moderate = c(51.1,48.9), 
  ModeratelySevere=c(53.3,46.7), 
  Severe = c(50,50))

barplot(t(as.matrix(mydf)), beside=TRUE)

我通过这种方式得到了一个条形图,但它们分为两组。一侧NSU的所有抑郁水平和另一侧DIU的所有抑郁水平。

我的结果

但我想介绍他们大学的每个抑郁症水平。这意味着,在 X 轴上将有 5 个级别。正常、轻度、中度、Mod。严重,严重。每个级别会呈现2个大学生抑郁程度。

我的预期图表

4

1 回答 1

0

或者使用 ggplot 和 tidyr:

library(ggplot2)
library(tidyr) #For gather

mydf <- data.frame( University = c("NSU", "DIU"),
                    Normal=c(59.7,40.3), 
                    Mild=c(55.2,44.8), 
                    Moderate = c(51.1,48.9), 
                    ModeratelySevere=c(53.3,46.7), 
                    Severe = c(50,50))


mydf %>% 
  gather(Depression, Level, -University) %>% 
  ggplot(aes(Depression, Level, fill = University, group = University)) +
  geom_bar(stat = "identity", position = "dodge") 
于 2019-08-28T15:57:41.907 回答