r - R:绘制具有两个条件的个人百分比条形图
问题描述
我想在以下数据集中绘制条件 A 和 B、A 和 C 以及 A 和 D 的个体的百分比:
Lines <- "id sex Age A B C D
1 male 90 1 1 0 1
2 female 87 0 1 1 0
3 male 50 1 1 0 0
4 female 54 0 1 0 1"
理想情况下,条形图的 X 轴为 B、C 和 D,Y 轴为百分比。这可以通过一个函数来完成吗?该函数可以外推到具有许多变量的设置,并且还可以按性别和年龄 > 55 来打破?
解决方案
这是一个基本的解决方案。
以下解决方案sapply
用于遍历列,然后使用 ggplot 创建图表。
df <-read.table(header=TRUE, text="id sex Age A B C D
1 male 90 1 1 0 1
2 female 87 0 1 1 0
3 male 50 1 1 0 0
4 female 54 0 1 0 1")
#perform the calculations
results<- sapply(5:7, function(colid) {
cond <- names(df)[colid]
result <- sum(df[["A"]]& df[[cond]])
})
conditions<-paste0("A", names(df)[5:7])
results <- data.frame(conditions, results)
#plotting
library(ggplot2)
library(scales)
g<- ggplot(results, aes(x=conditions, y=results/ncol(df))) +
geom_col(fill="blue") +
scale_y_continuous(limits=c(0,1), labels=label_percent())
print(g)
推荐阅读
- pyspark - pycharm 未提供所有 pyspark 建议
- r - R中的UNION ALL或INTERSECT ALL等价物?
- c - 使用C语言在vi/vim中打开文件
- python-3.x - 有没有办法指定端口范围 nmap3 扫描?
- python - 计算平均跑步速度的平均值(使用两个不同的 pandas dfs)
- javascript - 如何在 php 中为多个下拉过滤创建优化的 sql 查询?
- c# - VSTO Powerpoint AddIn - 如何将图片添加到幻灯片
- tabulator - 未捕获的类型错误:无法在清除过滤器上读取 .net 中 null 的属性“addEventListener”
- c - 我的 for 循环似乎没有增加。它卡在 2 上(项目 euler 14)
- php - 使用不同的“GET”变量提交重定向到当前 url