为何R语言mutate函数仅生成部分年龄分组?对应年龄存在却无分组
问题描述
我希望使用数据中的Age变量创建包含不同年龄段的Age_category变量,执行了以下R代码:
New_Data <- New_Data %>% mutate(Age_category = case_when(New_Data$Age <1 ~ "<1", New_Data$Age >=1 & New_Data$Age <=4 ~ "1-4", New_Data$Age >4 & New_Data$Age <=9 ~ "5-9", New_Data$Age >9 & New_Data$Age <=14 ~ "10-14", New_Data$Age >14 & New_Data$Age <=19 ~ "15-19", New_Data$Age >19 & New_Data$Age <=24 ~ "20-24", New_Data$Age >24 & New_Data$Age <=29 ~ "25-29", New_Data$Age >29 & New_Data$Age <=34 ~ "30-34", New_Data$Age >34 & New_Data$Age <=39 ~ "35-39", New_Data$Age >39 & New_Data$Age <=44 ~ "40-44", New_Data$Age >44 & New_Data$Age <=49 ~ "45-49", New_Data$Age >49 & New_Data$Age <=54 ~ "50-54", New_Data$Age >54 & New_Data$Age <=59 ~ "55-59", New_Data$Age >59 & New_Data$Age <=64 ~ "60-64", New_Data$Age >64 ~ "65+", New_Data$Age == "NULL" ~ "NULL"))
预期Age_category列包含以下分组:
"<1", "1-4","5-9", "10-14", "15-19","20-24", "25-29", "30-34", "35-39","40-44", "45-49", "50-54", "55-59", "60-64", "65+","NULL"
虽然成功创建了Age_category变量,但仅生成了"5-9"、"<1"、"1-4"、"65+"这几个不同分组,数据中存在对应年龄却未生成其他分组,不清楚原因。
问题排查与解决方案
1. 检查Age变量的数据类型
如果Age是字符类型,数值比较操作(比如>9)会因字符排序规则与数值不同而失效,导致中间年龄段的条件无法匹配。
- 执行以下代码查看变量类型:
class(New_Data$Age) - 若结果为
character,先转换为数值型(非数字值会转为NA):New_Data$Age <- as.numeric(New_Data$Age)
2. 修正缺失值判断逻辑
R中表示缺失值的是NA,而非字符串"NULL",原代码中New_Data$Age == "NULL"无法识别真正的缺失值,应改为is.na(Age)。
3. 简化dplyr管道内的变量引用
在mutate函数中无需重复使用New_Data$引用变量,直接使用变量名即可,避免潜在的作用域问题。
修正后的完整代码
New_Data <- New_Data %>% mutate(Age_category = case_when( Age < 1 ~ "<1", Age >=1 & Age <=4 ~ "1-4", Age >4 & Age <=9 ~ "5-9", Age >9 & Age <=14 ~ "10-14", Age >14 & Age <=19 ~ "15-19", Age >19 & Age <=24 ~ "20-24", Age >24 & Age <=29 ~ "25-29", Age >29 & Age <=34 ~ "30-34", Age >34 & Age <=39 ~ "35-39", Age >39 & Age <=44 ~ "40-44", Age >44 & Age <=49 ~ "45-49", Age >49 & Age <=54 ~ "50-54", Age >54 & Age <=59 ~ "55-59", Age >59 & Age <=64 ~ "60-64", Age >64 ~ "65+", is.na(Age) ~ "NULL" ))
4. 验证结果
执行以下代码查看生成的所有分组,确认是否包含预期类别:
unique(New_Data$Age_category)
内容的提问来源于stack exchange,提问作者Evelyne Okado
相关产品推荐
相关产品推荐

