r - 如何在 R 中创建基于 5 年间隔的图表
问题描述
我有两列,一列是年龄,另一列是百分比。我需要绘制一个图表,显示每 5 年间隔的百分比总和分布。
df$group <- cut(df$age, breaks = seq(0,120,by=5), right = TRUE)
我使用上面的代码将年龄按每 5 个间隔分组,然后使用 group by(age) 和 summarise(sum=sum(percentage) 对每 5 个间隔的所有百分比求和。但是,我不能这样做“分组依据”不能对分类变量起作用,你知道更好的方法吗?如果 df 是:
df <- data.frame(age=c(2,4,6,8), percentage=c(2,3,6,7))
并按(年龄)和汇总(总百分比)年龄(0-5,5-10),总百分比(5,13)转换为以下
但是,我需要以下内容:年龄(5,10),总和百分比(5,13)
解决方案
您可以使用组创建一个新变量,然后用于aggregate
按组聚合百分比值并将它们相加:
df = data.frame(age=c(2,4,6,8), percentage=c(2,3,6,7))
df$age.group = cut(df$age,seq(0,120,5))
sums = aggregate(percentage ~ age.group,FUN=sum,data=df)
结果将是:
> df
age percentage age.group
1 2 2 (0,5]
2 4 3 (0,5]
3 6 6 (5,10]
4 8 7 (5,10]
> sums
age.group percentage
1 (0,5] 5
2 (5,10] 13
推荐阅读
- php - Select2标签按功能设置值
- spring-boot - “META-INF/spring.provides”有什么用
- python - 字典中的python相似键
- c++ - 在 C++ 中生成字符串的排列
- r - 使用 ggplot 在绘图上绘制地图
- python - pandas 在 jupyter 上工作,但在 cmd 或 anaconda 提示符中无法识别
- ms-access - 访问从其他表读取的组合框并生成报告
- android - 安卓和PC之间的USB通信
- javascript - JIMP 的 Node.js Async/Promise 解释?
- php - 如何将变量从控制器发送到 laravel 5.6 中的通知