如何在R中根据terminate_dyad列条件修改type.of.termination列值?
解决方案
你可以通过完善case_when的条件分支来实现需求,同时覆盖NA值判断和保留原值的逻辑:
df %>% mutate(type.of.termination = case_when( # 匹配terminate_dyad为0或NA的情况,设置为0 terminate_dyad == 0 | is.na(terminate_dyad) ~ 0, # 匹配terminate_dyad为1的情况,保留原列值 terminate_dyad == 1 ~ type.of.termination, # 兜底逻辑:处理其他未覆盖的情况,同样保留原列值(可选) TRUE ~ type.of.termination ))
关键说明:
- 用
is.na(terminate_dyad)判断NA值,结合|逻辑或,同时匹配0和NA的场景 - 当
terminate_dyad等于1时,直接返回type.of.termination的原有值 - 最后的
TRUE ~ type.of.termination是可选的兜底逻辑,确保如果数据中出现0、1、NA之外的其他值,不会被错误赋值为NA
内容的提问来源于stack exchange,提问作者hobsbawm
相关产品推荐
相关产品推荐

