首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据同一数据框中的另一列绘制一列条形图

根据同一数据框中的另一列绘制一列条形图
EN

Stack Overflow用户
提问于 2020-12-17 05:15:46
回答 1查看 50关注 0票数 0

我正在尝试创建一个条形图,但是很困惑……我对R非常陌生。

下面是数据帧的外观

我想创建一个条形图来显示年龄分布,但基于暴露的列,暴露的列有两组,一组称为控制组,如图所示,另一组称为测试组。

到目前为止,我只知道如何基于一列创建条形图。

代码语言:javascript
运行
复制
barplot(table(df$income),  ylab="amount of income blocks",main="Barplot of Income",col = "firebrick", las=2)

按照要求,这是dput(df$exposed)的屏幕截图

下面是dput(df$age)的样子

我希望条形图看起来像是有两个条形图,第一个条形图显示基于测试组数量的年龄分布,第二个条形图显示基于控制组数量的年龄分布。

或者,如果可以,最好只显示一个不同颜色的柱状图,其中一种颜色表示测试组,一种颜色表示控制组的所有年龄分布。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 05:33:01

下面是一种使用ggplot的方法

代码语言:javascript
运行
复制
library(ggplot2)
ggplot(df, aes(x = exposed, fill = age)) +
  geom_bar(position = "dodge")

示例数据:

代码语言:javascript
运行
复制
df <- structure(list(userid = c("UID 25001", "UID 25002", "UID 25003", 
"UID 25004", "UID 25005", "UID 25006", "UID 25007", "UID 25008", 
"UID 25009", "UID 25010", "UID 10001", "UID 10002", "UID 10003", 
"UID 10004", "UID 10005", "UID 10006", "UID 10007", "UID 10008", 
"UID 10009", "UID 10010"), exposed = c("Control Group (PSA)", 
"Control Group (PSA)", "Control Group (PSA)", "Control Group (PSA)", 
"Control Group (PSA)", "Control Group (PSA)", "Control Group (PSA)", 
"Control Group (PSA)", "Control Group (PSA)", "Control Group (PSA)", 
"Test Group (Exposed)", "Test Group (Exposed)", "Test Group (Exposed)", 
"Test Group (Exposed)", "Test Group (Exposed)", "Test Group (Exposed)", 
"Test Group (Exposed)", "Test Group (Exposed)", "Test Group (Exposed)", 
"Test Group (Exposed)"), gender = c("Male", "Male", "Female", 
"Male", "Male", "Female", "Male", "Female", "Male", "Male", "Male", 
"Female", "Male", "Female", "Male", "Male", "Male", "Female", 
"Male", "Female"), age = c("18-25", "18-25", "51-65", "25-34", 
"25-34", "18-25", "35-50", "51-65", "25-34", "51-65", "51-65", 
"35-50", "35-50", "18-25", "51-65", "25-34", "51-65", "35-50", 
"65+", "35-50"), income = c("$25,000 - $50,000", "$50,001 - $75,000", 
"$50,001 - $75,000", "$25,000 - $50,000", "$50,001 - $75,000", 
"$75,001 - $100,000", "$75,001 - $100,000", "$50,001 - $75,000", 
"$50,001 - $75,000", "$50,001 - $75,000", "$50,001 - $75,000", 
"$75,001 - $100,000", "Greater than $100,000", "$25,000 - $50,000", 
"Greater than $100,000", "$75,001 - $100,000", "Greater than $100,000", 
"$50,001 - $75,000", "$25,000 - $50,000", "$50,001 - $75,000"
), purchased = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), class = "data.frame", row.names = c(NA, 
-20L))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65331213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档