R语言ifelse()函数异常修改值问题求助
问题原因与解决办法
异常原因
- 问题根源是
ifelse()函数的行为特性:当条件表达式的结果为NA时,函数会直接返回NA,而非采用你指定的第三个参数值。 - 非美国受访者的
us_prty字段应为NA(无美国政党投票记录),执行dat_red$us_prty == 6时,这类样本的判断结果是NA,触发ifelse()返回NA,直接覆盖了原本正常的RRP值。
修复方案
你可以选择以下两种方式解决:
- 仅针对符合条件的样本修改,不波及其他数据:
dat_red$RRP[dat_red$us_prty == 6] <- 1
- 完善
ifelse()的条件判断,排除NA的影响:
dat_red$RRP <- ifelse(!is.na(dat_red$us_prty) & dat_red$us_prty == 6, 1, dat_red$RRP)
内容的提问来源于stack exchange,提问作者Firefly05
相关产品推荐
相关产品推荐

