R调用broom::tidy报错No tidy method for objects of class character如何解决
错误含义
Error: No tidy method for objects of class character 表示broom::tidy()函数接收到了字符类型的输入,该函数没有针对字符类型的标准化转换方法,无法完成解析操作。
错误根因
ggpubr::compare_means执行完成后返回的本身就是结构化的t检验结果数据框,你通过group_split(FEATURE)拆分后得到的alt_1列表,每个元素都是独立的FEATURE对应的检验结果数据框,并非嵌套的模型对象。你后续调用了两层map,第二层map会遍历每个数据框的所有列,其中SESSION、分组对比字段等都是字符类型,你将字符向量传入broom::tidy就触发了该报错。同时compare_means的输出已经是整理好的统计结果,不需要再调用broom::tidy做二次处理。
修复方案
场景1:每个FEATURE对应生成单独的flextable
删除多余的嵌套遍历和tidy调用,直接对每个拆分后的结果生成表格即可:
alt_1 %>% purrr::map(~ flextable::flextable(.x))
场景2:所有FEATURE的检验结果合并为一个表格
先合并拆分的列表再生成表格:
dplyr::bind_rows(alt_1) %>% flextable::flextable()
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

