首页 > 解决方案 > 如何在 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)

标签: rgraphgroup-byintervalssummarize

解决方案


您可以使用组创建一个新变量,然后用于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

推荐阅读