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

如何使用dplyr按条件重编码房屋类型变量?

解答

要实现你描述的按多条件规则重编码生成新变量的需求,使用dplyr包的case_when()函数即可,该函数就是为多分支条件赋值场景设计的,完全适配你的需求。

实现注意事项

  • 写判断条件时要严格匹配原始变量的取值格式、大小写:你给出的原始取值里公寓类是无空格的Flat/Apartment、开间是全小写的studio,和你规则里写的带空格的Flat / Apartment、首字母大写的Studio格式有差异,要以原始变量的实际取值为准写判断逻辑,否则会出现匹配错误被归为0类的问题。
  • case_when()会按书写顺序从上到下判断条件,匹配到第一条符合的规则就会赋值,不会继续向后判断,最后写TRUE ~ 对应值就可以覆盖所有未匹配到前面规则的剩余情况。

参考实现代码

library(dplyr)

# 假设原始数据框名为house_data,原始房屋类型变量名为house_type
house_data <- house_data %>%
  mutate(
    # 生成重编码后的新变量type_group
    type_group = case_when(
      house_type == "House" ~ 1,
      house_type == "Penthouse" ~ 2,
      house_type %in% c("Flat/Apartment", "studio") ~ 3,
      TRUE ~ 0
    )
  )

# 对新变量做频次统计
table(house_data$type_group)

内容的提问来源于stack exchange,提问作者Daan Reitsma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:24:19