You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用qwraps2包遇UTF-8无效错误:RStudio中Rmarkdown代码块运行异常

问题分析

你遇到的Error in sub(re, "", x, perl = TRUE) : input string 6 is invalid UTF-8错误,核心原因是:直接在R控制台运行代码时,qwraps2的markdown渲染模式无法正确处理±这类特殊UTF-8字符;而Rmarkdown编译PDF时,会自动将markdown语法转换为LaTeX格式,编码适配过程掩盖了这个问题。

解决方案

方法1:临时切换渲染模式

直接运行代码时,将qwraps2的渲染模式切换为latex,避开UTF-8字符冲突:

# 保存原设置
orig_opt <- options()$qwraps2_markup
# 切换为latex模式(适配控制台输出)
options(qwraps2_markup = "latex")

descriptive_table <- summary_table(Considered_Variables, descriptive_analysis )
print(descriptive_table,
      caption = " Descriptive Table",
      rtitle = "Variables",
      cnames = c("Values"))

# 恢复原设置(如需回到markdown模式用于Rmarkdown编译)
options(qwraps2_markup = orig_opt)

方法2:替换特殊字符

如果坚持使用markdown模式,把定义里的±替换为纯文本的+/-,消除编码问题:
修改descriptive_analysis中所有变量对应的该行:

"Mean +/- Standard deviation" = ~ qwraps2::mean_sd(female)

方法3:转换为数据框查看

若只是需要查看汇总结果,无需渲染成markdown表格,可将生成的对象转成普通数据框:

# 直接查看数据框格式的汇总结果
as.data.frame(descriptive_table)
额外修正建议
  • 代码中存在重复列表键:"Importance given to attractiveness"出现两次,第二个实际对应sincere_important,建议修改键名(比如改为"Importance given to sincerity"),避免数据覆盖丢失。
  • 变量名拼写错误:intellicence_important应为intelligence_important,ambtition_important应为ambition_important,修正后可避免后续潜在报错。

内容的提问来源于stack exchange,提问作者Bruno Calderon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:55:20