使用R语言janitor包adorn_totals函数报错的解决方法
解决
janitor::adorn_totals("row")报错问题 问题原因
你的autres数据框是tabyl类型对象,从你提供的数据集结构可以看到,它的属性中已经存在totals = "row"标记——这是因为原始数据集曾调用过adorn_totals,即使你筛选后的autres没有显示total行,tabyl对象的属性依然保留了这个总计维度标记,导致adorn_totals函数判断“已添加过总计行”,从而抛出错误。
解决方法
以下三种方式任选其一即可:
方式一:转换为普通数据框后添加总计
将tabyl对象转换为普通data.frame,清除tabyl相关属性后再调用adorn_totals:
library(janitor) autres %>% as.data.frame() %>% adorn_totals("row")
方式二:清除tabyl属性后添加总计
使用janitor自带的remove_tabyl_attributes函数清除tabyl的专属属性,再添加总计行:
library(janitor) autres %>% remove_tabyl_attributes() %>% adorn_totals("row")
方式三:手动重置totals属性
如果需要保留tabyl的其他功能,可以单独重置totals属性:
attr(autres, "totals") <- NULL adorn_totals(autres, "row")
内容的提问来源于stack exchange,提问作者gerardlambert
相关产品推荐
相关产品推荐

