使用modelsummary包datasummary_crosstab报错:需仅保留选中变量?
关于modelsummary包datasummary_crosstab函数的报错问题
我在使用modelsummary包中的datasummary系列函数时发现一个问题:datasummary_crosstab仅在数据框只包含指定变量时才能正常运行,否则会返回错误,但我没在官方文档里找到相关说明,是不是我漏看了什么?
可复现代码:
# 安装包含CES重编码变量的个人包 devtools::install_github("sjkss/cesdata2") # 加载包 library(cesdata2) # 加载ces21数据集 data("ces21") library(modelsummary) # 运行报错 datasummary_crosstab(past_vote~ vote, data=ces21) # 正常运行 ces21 %>% select(past_vote, vote) %>% datasummary(past_vote~vote, data=.)
问题原因与解决方法
你误用了datasummary_crosstab的调用语法——这个函数不支持公式(row~col)输入,它的调用逻辑是通过明确指定row和col参数来传入交叉表的行、列变量,而非像datasummary那样用公式形式。
正确的调用方式无需提前筛选数据,直接指定参数即可:
datasummary_crosstab(row = past_vote, col = vote, data = ces21)
之前的错误调用中,函数把公式past_vote~vote当成了row参数的输入值,进而尝试处理整个数据集的所有变量,最终导致报错;而你筛选数据后使用datasummary函数能正常运行,是因为datasummary本身原生支持公式语法。
你可以通过执行?datasummary_crosstab查看官方帮助文档,里面明确标注了该函数的参数定义,确认这一点。
内容的提问来源于stack exchange,提问作者spindoctor
相关产品推荐
相关产品推荐

