mutate函数合并值失败,求逻辑回归变量二值化解决方法
问题修复与解决方案
你的代码存在以下语法逻辑问题:
case_when的每个条件分支必须用逗号分隔,你错误地用右括号结束每个分支- 第二个
mutate里的case_when语法不完整,缺少赋值符号~,且错误使用逗号分隔条件 fct_relevel的调用时机错误,应该在完成二分类重编码后再调整因子水平
正确的重编码代码示例:
假设你的数据框名为 df,完整处理流程如下:
library(dplyr) library(forcats) df <- df %>% mutate( Vira_respondenta = case_when( # 所有信徒类别统一映射为"Věřící" Vira_respondenta %in% c( "Ostatní Křesťanské", "Římskokatolické", "Českobratrské evangelické", "Československé husitské", "Ostatní mimokřesťanské" ) ~ "Věřící", # 无宗教及剩余类别映射为"Nevěřící" TRUE ~ "Nevěřící" ), # 调整因子水平,将"Nevěřící"设为逻辑回归的参照基准 Vira_respondenta = fct_relevel(Vira_respondenta, "Nevěřící") )
补充说明:
- 用
%in%替代多次==可简化代码,提升可维护性 TRUE ~ "Nevěřící"会自动覆盖所有未在前面列出的类别,避免因遗漏取值产生NA值- 若仅需将"Žádné"设为"Nevěřící",可把
TRUE替换为具体条件:Vira_respondenta == "Žádné" ~ "Nevěřící",但需确保8个取值都被明确覆盖
内容的提问来源于stack exchange,提问作者young tent
相关产品推荐
相关产品推荐

