【发布时间】:2020-11-15 16:35:52
【问题描述】:
我需要聚合数据集的行以折叠年龄范围。我的数据集目前有 5 岁的年龄范围。我试图将这些年龄范围组合成类别,同时汇总一些变量(人口、X1、X2、X3 和 X4),同时保持变量“类别”对于该特定 ID 中的每一行都是相同的。
我的数据集如下所示:
ID Age.Range Population X1 X2 X3 X4 Category
1 05-09 years 10 1 0 0 1 a
1 10-14 years 20 0 0 1 0 a
1 30-34 years 10 0 0 1 0 a
1 40-44 years 15 2 0 0 1 a
2 05-09 years 15 1 1 0 2 b
2 25-29 years 10 0 0 0 0 b
3 10-14 years 15 0 1 2 0 a
3 15-19 years 10 1 0 0 1 a
3 20-24 years 15 0 0 1 3 a
3 30-34 years 20 0 0 1 0 a
3 35-39 years 10 0 1 0 0 a
我正在尝试生成一个结合年龄的新数据框,以便我的新年龄范围是 05-29 岁、30-39 岁和 40-49 岁,所以它看起来像这样:
ID Age.Range Population X1 X2 X3 X4 Category
1 05-29 years 30 1 0 1 1 a
1 30-39 years 10 0 0 1 0 a
1 40-49 years 15 2 0 0 1 a
2 05-29 years 25 1 1 0 2 a
3 05-29 years 40 1 1 3 4 a
3 30-39 years 30 0 1 1 0 a
我试过用 dplyr 做这个,但没有成功。任何帮助将不胜感激!
【问题讨论】:
-
为了让我们帮助您,请提供reproducible example。例如,要生成最小数据集,您可以使用
head()、subset()或索引。然后使用dput()给我们一些可以立即放入R 的东西。另外,请确保您知道该怎么做when someone answers your question。更多信息可以在 Stack Overflow 的help center 上找到。谢谢! -
您可以将当前年龄组的最小和最大年龄提取到两个新列中,然后将它们重新分类到您想要的新组中。
-
我提供了一个解决方案,但我不明白为什么
05-29 years的ID 2Category值在您的预期输出中是a。不应该是b吗?无论如何,这就是我的解决方案中包含的内容。