问题
需要将新的计算列添加到现有的 data.frame 中。这是最简单的部分:变异和赋值。现在我有一个包含 8 个类别的分类列,对于每个类别,我需要分配一组经过过滤的行来计算该人口行范围的死亡率。
组错误。
想法解决方案是处理单独的独特类别,例如伤害死亡机制。每个类别组将通过过滤后的年龄组分配。
数据有5个年龄组和10类伤害死亡机制(数据示例如下)。对于每个单独的年龄组和每个单独的伤害死亡机制,需要根据此范围(死亡/人口)计算死亡率。我对年龄组的过滤器使用 grep 方法针对这个因式分解的年龄组。
年龄组的基本设置,对每个年龄组重复。以下内容仅适用于 15 岁;需要对所有 5 个年龄组进行处理,并对每个单独的伤害死亡机制进行子处理,并计算派生率。现在我为每个年龄组都有单独的特定代码行。
df_age_1524 <- df_age_1524 %>%
group_by(Injury.mechanism) %>%
mutate(AgeGrp.DRate <- df_age_1524$Deaths / df_age_1524$Population * 1000 * 100)
df_age_2544 <- df_age_2544 %>%
group_by(Injury.mechanism) %>%
mutate(AgeGrp.DRate <- df_age_2544$Deaths / df_age_2544$Population * 1000 * 100)
** 错误 **
> df_age_2544 <- df_age_2544 %>%
+ group_by(Injury.mechanism) %>%
+ mutate(AgeGrp.DRate <- df_age_2544$Deaths / df_age_2544$Population * 1000 * 100)
Error in `mutate()`:
ℹ In argument: `AgeGrp.DRate <- ...`.
ℹ In group 1: `Injury.mechanism = All Mechanisms`.
Caused by error:
! `AgeGrp.DRate <- ...` must be size 216 or 1, not 2376.
Run `rlang::last_error()` to see where the error occurred.
df_age_15 <- df_age_15 %>%
mutate(AgeGrp.DRate = 0)
df_age_15 <- df_suicide_data %>%
filter(grepl('15', as.character(Age.Group)))
...
...
在此代码中,我试图通过 1) 过滤的 15 岁,2) 按伤害分组来设置死亡率的年龄组突变。机制,突变 AgeGrp.DRate。这是一个很有前途的简短方法。但它没有按需要工作。没有更新 AgeGrp.DRate。
df_age_15 <- df_age_15 %>%
group_by(Injury.mechanism) %>%
mutate(AgeGrp.DRate <- df_age_15$Deaths / df_age_15$Population * 1000 * 100)
...
...
... repeated for each age group, and grouped by Injury.mechanism
在这段代码中,我试图为死亡率设置一个年龄组的突变 1) 针对特定的伤害过滤。机制(有 10 个执行相同,然后突变 AgeGrp.DRate。在这段代码中,只有过滤器()执行。变异没有执行。
df_age_15 <- df_age_15 %>%
filter(grepl('Cut', as.character(Injury.mechanism))) #%>%
mutate(AgeGrp.DRate <- df_age_15$Deaths / df_age_15$Population * 1000 * 100)
df_age_15 %>%
filter(grepl('Drwn', as.character(Injury.mechanism))) #%>%
mutate(AgeGrp.DRate <- df_age_15$Deaths / df_age_15$Population * 1000 * 100)
...
...
... repeated for each age group and each Injury.Mechanisms Levels: All Mechanisms, Cut, Drwn, Fall, Hot, Firearm, OT, Poison, Unspecified, Suff, All Other Specified
问题逻辑的数据示例
Age.Group Levels: < 15, 15–24, 25–44, 45–64, 65–74, 75+, All Ages
Injury.Mechanisms Levels All Mechanisms, Cut, Drwn, Fall, Hot, Firearm, OT, Poison, Unspecified, Suff, All Other Specified