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

如何用dplyr清理R数据框列:将y/yes改为Yes、nop/no改为No

使用dplyr清理has_elevator列的方法

当然可以,用dplyr的几个函数就能轻松实现需求,下面提供两种常用的处理方式:

方法1:使用recode()函数

recode()适合这种明确值映射的场景,直接指定每个需要替换的原始值对应的目标结果:

library(dplyr)

# 假设你的数据框名为df
df_cleaned <- df %>%
  mutate(has_elevator = recode(has_elevator,
                               "y" = "Yes",
                               "yes" = "Yes",
                               "nop" = "No",
                               "no" = "No"))

方法2:使用case_when()函数

如果后续需要扩展更多匹配条件,case_when()的灵活性更强,它会按顺序匹配设定的条件:

df_cleaned <- df %>%
  mutate(has_elevator = case_when(
    # 转小写后匹配,兼容可能存在的大写变体(比如"YES")
    tolower(has_elevator) %in% c("y", "yes") ~ "Yes",
    tolower(has_elevator) %in% c("no", "nop") ~ "No",
    # 保留未匹配的原始值(如果有必要,也可以改为NA)
    TRUE ~ has_elevator
  ))

验证处理结果

可以用table()函数查看处理后的值分布,确认是否统一:

table(df_cleaned$has_elevator)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:24:29