【发布时间】:2019-04-21 22:02:45
【问题描述】:
我在 R 中有一个包含四列的数据框。我想按州和年份计算 44 岁以下公民的总百分比。
如何在 R 中完成此操作,同时保留年份和状态列?
我已经能够使用聚合来获取总和并从更大的数据集中保留年份/州/年龄值。我只是无法得到整列的总和,但现在我不确定从这里去哪里计算百分比。
|------------||------------||------------||------------|
| Year || State || Age || Pop |
|------------||------------||------------||------------|
| 2000 || VA || <44 || 150 |
|------------||------------||------------||------------|
| 2000 || VA || 44+ || 350 |
|------------||------------||------------||------------|
| 2000 || VA || Total || 500 |
理想输出:
|------------||------------||------------||------------|
| Year || State || Age || Pop |
|------------||------------||------------||------------|
| 2000 || VA || <44 || 0.3 |
|------------||------------||------------||------------|
| 2004 || VA || <44 || 0.2 |
|------------||------------||------------||------------|
| 2008 || VA || <44 || 0.4 |
这是我用来获取数据框以查看其工作方式的最后一段代码。
demos_sub <- aggregate(demos_sub$total_citizen_pop, by=list(Year=demos_sub$year, State=demos_sub$state, Age=demos_sub$age), FUN=sum)
names(demos_sub) <- c("year","state", "age", "total_citizen_pop")
demos_sub <- demos_sub[with(demos_sub, order(year)),]
demos_sub <- demos_sub[with(demos_sub, order(state)),]
我只是不知道从哪里开始进一步缩小并计算百分比。
【问题讨论】:
-
你能告诉我们你到目前为止所做的尝试以及你遇到了什么问题吗?
-
已添加;我只是真的不知道如何前进。
-
抱歉应该更准确,但我的意思是你能添加你的代码吗?如果我们能看到您遇到的问题,解释起来会容易得多...(您可以使用更简单的数据集来说明您的观点。)
-
我添加了我上次为达到这一点所做的代码,但我什至不知道从这里继续前进的地方。我不认为聚合会再次起作用......
标签: r