如何让R公式正确解析逻辑判断作为svychisq()的参数?
解决survey包svychisq()公式中逻辑判断的报错问题
要直接在公式里处理Enjoy_Driving_Fast == "Agree"这个逻辑判断,避免提前创建哑变量,你可以用以下两种方式调整公式:
用
I()包裹逻辑表达式:
R的公式会自动解析运算符(比如==)作为公式语法的一部分,而非计算逻辑值。I()函数可以强制R把括号内的内容当作一个独立的计算变量处理,修改后的公式如下:svychisq(~ Car_Color + I(Enjoy_Driving_Fast == "Agree"), design = your_survey_design)在公式内转换为带标签的因子:
如果需要让结果中的变量更易读,可以直接在公式里把逻辑结果转为带标签的因子,示例:svychisq(~ Car_Color + factor(Enjoy_Driving_Fast == "Agree", levels = c(TRUE, FALSE), labels = c("Agree", "Not Agree")), design = your_survey_design)
这两种写法都能让svychisq()正确识别你要对比的二元变量,无需提前生成哑变量。
内容的提问来源于stack exchange,提问作者KBurchfiel
相关产品推荐
相关产品推荐

