如何在R语言中基于另一变量的值修改变量取值(人口统计变量重编码场景)
修正后的R重编码实现方法
嘿,我发现你写的代码里有个小问题——在case_when的分支里,你用了逻辑判断语句(比如Q36 == "Hispanic"),但实际上我们需要直接赋值对应的字符串,而不是做判断。另外,还得加上默认分支来保留原本的变量值,不然不符合条件的行会变成NA。
下面是正确的实现代码:
data <- data %>% mutate(Q36 = case_when( Q35 == "Yes" & Q36 == "Other" ~ "Hispanic", Q35 == "No" & Q36 == "Other" ~ "Unspecified", TRUE ~ Q36 # 默认保留原Q36值 ))
代码说明:
- 第一个分支:当
Q35取值为"Yes"且Q36为"Other"时,将Q36替换为"Hispanic" - 第二个分支:当
Q35取值为"No"且Q36为"Other"时,将Q36替换为"Unspecified" - 最后一个
TRUE ~ Q36:所有不满足上述两个条件的情况,保持Q36的原始值不变,避免出现缺失值
内容的提问来源于stack exchange,提问作者Patrick Kielly




