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

R中基于分组均值对变量水平进行分类的实现方法是否正确

你的实现思路是正确的,但存在2处可以优化和修正的问题:

  • 核心逻辑成立:按Neighborhood分组后计算分组房价均值、再给分组打分类标签的逻辑可以正常运行,能得到符合你需求的基础结果。但最后一层ifelse没有设置默认返回值,当某个街区的平均房价≥340000时,对应的Neighborhood.Cat会被赋值为NA,如果你的数据集里存在这类高房价街区,需要补充对应分类分支,比如改成ifelse(mean(price) < 340000, "E", "F")。
  • 写法可优化:多层嵌套ifelse的可读性和维护性都较差,更推荐使用dplyr内置的case_when()函数改写,同时建议给mean()函数添加na.rm = TRUE参数,避免分组内存在房价缺失值时均值计算返回NA的问题,改写后的参考代码如下:
ames.train.c <- ames.train.c %>%
  group_by(Neighborhood) %>%
  mutate(Neighborhood.Cat = case_when(
    mean(price, na.rm = TRUE) < 140000 ~ "A",
    mean(price, na.rm = TRUE) < 200000 ~ "B",
    mean(price, na.rm = TRUE) < 260000 ~ "C",
    mean(price, na.rm = TRUE) < 300000 ~ "D",
    mean(price, na.rm = TRUE) < 340000 ~ "E",
    TRUE ~ "F" # 可根据实际需求调整最高分类的命名
  ))

内容的提问来源于stack exchange,提问作者Ahmed Mostafa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:15:01