R语言中如何基于两个指定条件修改数据框列的取值
R 双条件替换数据框列值实现方案
你的需求是同时满足两个条件时才替换空值,只需要在原有判断逻辑里补充第二个校验规则即可,注意R中判断空值必须使用is.na()函数,不能直接用== NA比较。
基础R实现(不需要额外安装包)
直接修改原数据框的emp_length列,代码如下:
credit_data$emp_length <- with(credit_data, ifelse(emp_title == "" & is.na(emp_length), "0", emp_length) )
逻辑说明:
- 用
&连接两个判断条件,只有两个条件同时为真时才执行替换 - 非目标场景下会保留
emp_length的原有取值 - 必须把运算结果赋值回原数据框的对应列,修改才会生效
dplyr 实现(适合tidyverse生态用户)
如果你习惯使用tidyverse系列工具,可以用mutate实现逻辑,可读性更强:
library(dplyr) credit_data <- credit_data %>% mutate( emp_length = if_else( condition = emp_title == "" & is.na(emp_length), true = "0", false = emp_length ) )
注意事项
- 如果你的
emp_length列是因子(factor)类型,替换前需要先转成字符类型,否则可能出现类型不匹配报错,转换代码:credit_data$emp_length <- as.character(credit_data$emp_length)
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

