如何使用具有三个级别的 x 变量和比例不相关的二分 y 变量创建条形图 [重复]

Posted

技术标签:

【中文标题】如何使用具有三个级别的 x 变量和比例不相关的二分 y 变量创建条形图 [重复]【英文标题】:How to create a bar plot with an x-variable with three levels and an unrelated dichotomous y-variable in proportions [duplicate] 【发布时间】:2021-12-21 11:06:18 【问题描述】:

示例表:

Obesity and/or Diabetes status Death occurred
0 1
2 1
1 0
2 0
2 0
1 1
0 0

我想创建一个条形图,其中 x 变量是肥胖和/或糖尿病状态,其中将有 0、1 和 2 三个相邻条形图。我希望​​ y 变量是每个 x 类别中死亡的个人。我尝试运行的代码如下:

install.packages("qdap", "dplyr", "tidyr", "ggplot2")
install.packages("igraph", type = "binary")
install.packages("gender", type = "binary")
library(qdap)
library(dplyr)
library(tidyr)
library(ggplot2)

`FramFinal2017(1)`$category <- rownames(`FramFinal2017(1)`)

df <- `FramFinal2017(1)` %>%
      gather(results, DEATH, - category) %>%
      mutate(results = char2end(results, "_", 2)) %>%
      separate(category, c("category", "Response"))

ggplot(data = df, aes(x = category, y = DEATH, fill = Response)) +
    geom_bar(stat = "identity", position = "stack") +
    facet_grid(. ~ results)

但代码不断吐出与包本身相关的错误,例如:

Error: package or namespace load failed for ‘qdap’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): namespace ‘dplyr’ 0.8.3 is already loaded, but >= 0.8.5 is required

如果有其他方法可以解决此问题,或者您需要更多说明,请告诉我。

【问题讨论】:

【参考方案1】:

你可以试试

library(tidyverse)
read.table(text="status Death
0   1
2   1
1   0
2   0
2   0
1   1
0   0", header=T) %>% 
  group_by(status)  %>%
   summarise(total = n(),
             n=sum(Death)) %>% 
  mutate(proportion_death = n/total*100) %>% 
  ggplot(aes(status, proportion_death)) + 
   geom_col()

【讨论】:

以上是关于如何使用具有三个级别的 x 变量和比例不相关的二分 y 变量创建条形图 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

没有第三个变量如何交换?

想要将 Pandas 数据框绘制为具有 log10 比例 x 轴的多个直方图

具有相关字段的 HTML 表单

具有变量替换的 Visual Studio 2012 数据库部署

如何使用SPSS分析三个变量之间的相关系数(x1、X2、y)?

ggplot2:方面的连续和离散比例