首页 > 解决方案 > 如何从 R 中的数据框中的重复行中专门添加一些值?

问题描述

我有一个包含 3 个变量(部分、年龄组和人口)和 3011 个观察值的数据框。

age_group 中有 12 个不同的年龄组,每个年龄组都用一个从 1 到 12 的数字标识。1 代表 18 岁,2 代表 19 岁,3 代表 20-24 岁,4 代表 25-29 岁。 .. 12 岁是 65 岁以上。

每个部分有 12 行,人口按年龄组排序。

我想按世代(z,千禧一代,x,婴儿潮一代)显示每个部分,这将是 z = age_groups 1:3,millennial = age_groups 4:6,x = age_groups 7:9,boomers = 10:12

我尝试过使用 dplyr 包,特别是 ddply,即

ddply(~section, summarise, age_group = sum(age_group), population = sum(population))

但是我知道如何在没有所有组年龄合并的情况下从每个组中分离出来。

我正在使用的表格片段

在此处输入图像描述

标签: rdataframedplyrplyr

解决方案


听起来您需要添加另一列generation,然后按generationand进行汇总age_group

df  = df %>%
  mutate(generation = case_when(age_groups %in% c(1,2,3) ~ "z",
                                age_groups %in% c(4,5,6) ~ "millennial",
                                age_groups %in% c(7,8,9) ~ "x",
                                age_groups %in% c(10,11,12) ~ "boomers")) %>%
  group_by(generation, age_groups) %>%
  summarise(num = n(), .groups = "drop")

推荐阅读