Tibble无法对逻辑回归模型结果的数值型值取整的问题求助
解决逻辑回归结果tibble数值保留两位小数的问题
你的问题核心出在列的类型上:从原始tibble的输出能看到,Estimate、Std. Error这些你想处理的列都是<chr>字符型,不是数值型。你用mutate_if(., is.numeric, round2)的时候,is.numeric会判定这些列不符合条件,所以根本不会执行取整操作,自然看不到变化。
解决方案
先把字符型的数值列转换成数值型,再执行保留两位小数的操作,用dplyr可以这样写:
# 定义保留两位小数的函数 round2 <- function(y) {round(y, 2)} # 加载dplyr包 library(dplyr) # 转换列类型并取整 clean_result <- fit0.sum %>% mutate(across(c(Estimate, `Std. Error`, `z value`, `Pr(>|z|)`), ~ round2(as.numeric(.x))))
如果你的dplyr版本低于1.0.0,用mutate_at替代across:
clean_result <- fit0.sum %>% mutate_at(vars(Estimate, `Std. Error`, `z value`, `Pr(>|z|)`), ~ round2(as.numeric(.x)))
补充:仅格式化显示(不修改存储类型)
如果只是想让输出的时候显示两位小数,不想改变列的数值存储类型,可以用sprintf格式化字符串:
display_result <- fit0.sum %>% mutate(across(c(Estimate, `Std. Error`, `z value`, `Pr(>|z|)`), ~ sprintf("%.2f", as.numeric(.x))))
这样处理后列还是字符型,但显示的是两位小数,适合生成报告时用。
内容的提问来源于stack exchange,提问作者therickster
相关产品推荐
相关产品推荐

