使用tbl_summary knit为word_document2时出现找不到NA文件错误
问题分析与解决方案
问题核心
你遇到的could not find file '/xxx/NA'错误,本质是gtsummary生成Word格式表格时,与自定义学术机构模板的变量解析冲突——某个未正确赋值的模板变量被错误拼接进文件路径,最终变成了NA。
可行解决方案
1. 临时关闭gtsummary的Word自动适配
gtsummary针对Word输出会自动调用内置模板,大概率和你的自定义Rmarkdown模板冲突。在代码块开头添加以下设置:
options(gtsummary.word_document = FALSE)
重新运行tbl_summary(df),强制gtsummary用普通格式输出表格,验证是否还会触发NA路径错误。
2. 检查自定义模板的YAML变量
原博客的模板依赖作者、机构类YAML变量(比如affiliation、correspondence),确认这些变量在Word输出的YAML中都已正确赋值,没有遗漏或拼写错误。如果模板引用了未定义的变量,会返回NA,进而被错误识别为文件路径。
3. 修正pandoc参考文档路径写法
把YAML中的相对路径改为R代码生成的绝对路径,避免路径解析歧义:
--- output: bookdown::word_document2: pandoc_args: !expr c(paste0("--reference-doc=", here::here("Extras/Reference_Document.docx"))) keep_tex: TRUE ---
需要先安装here包:install.packages("here")。
4. 排查模板中的自定义钩子
原模板可能包含针对PDF/HTML的knitr钩子函数,这些钩子在Word输出时可能错误读取未定义的路径变量。检查模板的setup代码块,看是否存在条件判断不完整的逻辑——比如只处理了PDF/HTML场景,未适配Word输出。
内容的提问来源于stack exchange,提问作者Brian Brummer
相关产品推荐
相关产品推荐

