summarytools包dfSummary()处理因子向量时freqs列出现多余反斜杠
解决summarytools包dfSummary()处理因子向量时freqs列多余反斜杠问题
问题描述
使用summarytools包的dfSummary()函数处理因子向量时,输出结果的freqs列值开头会出现多余的反斜杠。该问题仅在处理因子向量时出现,处理数值或日期向量时无异常,常见于R Markdown文件运行代码并编织为HTML的场景。
复现代码
x <- factor(c("Tertiary_pattern_3", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_4", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_4", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_4", "Tertiary_pattern_2", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_4", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_5", "Tertiary_pattern_4", "Tertiary_pattern_5")) print(kable(dfSummary(x, graph.col = FALSE, style = "grid", plain.ascii = FALSE ), method = "render") %>% kable_styling('bordered', bootstrap_options = c("striped", "hover", "condensed")),'\n\n')
解决方案
方法1:启用plain.ascii参数
将dfSummary()的plain.ascii参数设为TRUE,可以避免HTML转义导致的反斜杠问题:
print(kable(dfSummary(x, graph.col = FALSE, style = "grid", plain.ascii = TRUE # 修改此处为TRUE ), method = "render") %>% kable_styling('bordered', bootstrap_options = c("striped", "hover", "condensed")))
方法2:手动清理反斜杠
如果需要保留plain.ascii=FALSE的格式,可以通过字符串替换清理freqs列中的多余反斜杠:
# 生成dfSummary结果对象 summary_result <- dfSummary(x, graph.col = FALSE, style = "grid", plain.ascii = FALSE) # 移除freqs列开头的反斜杠 summary_result$Data[, "freqs"] <- gsub("^\\\\", "", summary_result$Data[, "freqs"]) # 输出处理后的表格 print(kable(summary_result, method = "render") %>% kable_styling('bordered', bootstrap_options = c("striped", "hover", "condensed")))
方法3:使用summarytools原生print方法
跳过kable,直接使用dfSummary()自带的print方法输出,避免第三方工具的转义冲突:
print(dfSummary(x, graph.col = FALSE, style = "grid", plain.ascii = FALSE), method = "render", bootstrap.css = FALSE) # 关闭自带CSS,适配R Markdown环境
内容的提问来源于stack exchange,提问作者Shardul Nazirkar
相关产品推荐
相关产品推荐

