You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中对年龄变量分组时输出TRUE/FALSE/NA的问题咨询

错误原因
  • 核心错误:mutate()内使用了相等判断符==而非赋值符=,代码实际执行的是「判断原Age列与case_when返回的分类字符串是否相等」的逻辑,最终输出自然只有TRUE/FALSE/NA三类布尔值。
  • 冗余调用:使用%>%管道传入数据框后,无需再加metsother$前缀调取列,直接写列名即可,额外添加前缀可能引发作用域匹配异常。
  • 条件逻辑错误:第三个分组的条件写为Age >= 61 & Age >= 80,仅能匹配80岁及以上样本,不符合61-80岁分组的预期;同时未处理18岁以下、80岁以上的样本,会生成NA值。
修正后代码
agecategory <- metsother %>% 
  mutate(age_group = case_when(
    Age >= 18 & Age <= 40 ~ "Category 1",
    Age >= 41 & Age <= 60 ~ "Category 2",
    Age >= 61 & Age <= 80 ~ "Category 3",
    TRUE ~ "其他" # 兜底匹配所有不满足上述条件的样本,可根据需求调整分类或提前过滤样本
  ))
注意事项

如果仅需要分析18-80岁区间的样本,可以在执行mutate()前添加filter(Age >= 18 & Age <= 80)步骤,过滤无效样本后再做分组。

内容的提问来源于stack exchange,提问作者kirellos said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:15:02