- 此问题在此处已有答案**:
Way to avoid nested ifelse statement in R(2个答案)
2天前关闭。
我想使用数据中的年龄变量创建一个具有不同年龄段的"年龄类别"变量。
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"))
我希望在年龄类别列中显示以下内容
"<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"
虽然年龄类别变量创建成功,但它只包含三个年龄不同的年龄段("5 - 9""〈1""1 - 4""65 +")。我不明白为什么其他年龄段还没有创建,而数据中却存在他们的年龄
1条答案
按热度按时间8dtrkrch1#
如果你发现自己在
case_when
中使用了这么多的子句,你应该问问自己是否存在更简单的子句,在你的例子中,如果你使用cut
,它会节省大量的编码和调试:创建于2023年2月17日,使用reprex v2.0.2