在R Markdown中嵌入ADF检验结果knit成PDF报错的解决咨询
问题描述
我尝试在R Markdown中嵌入ADF检验结果并编译为PDF,使用的代码如下:
```{r, Test for unit root, echo=F, include = T, message= F, warning=F} #ADF test adf.test(output_day$output)
编译时返回错误:`You can't use macro parameter character #' in horizontal mode`,猜测是LaTeX格式化问题,该如何解决? ## 解决方法 这个错误根源是代码块名称含空格,且ADF输出中的`#`字符被LaTeX误解析为宏命令参数,以下是两种可行的修正方案: ### 方案一:修正chunk名称+用LaTeX环境包裹输出 1. 将代码块名称`Test for unit root`改为无空格的格式(比如`unit_root_test`),避免LaTeX解析空格时出错; 2. 用LaTeX的`verbatim`环境包裹ADF检验的输出,让LaTeX把内容当作纯文本解析,跳过宏命令识别: ```r ```{r unit_root_test, echo=F, include=T, message=F, warning=F} library(tseries) # 先保存检验结果 adf_result <- adf.test(output_day$output) # 用verbatim环境包裹输出 cat("\\begin{verbatim}\n") print(adf_result) cat("\\end{verbatim}\n")
### 方案二:用`broom`+`knitr`生成格式化表格(推荐) 如果需要更美观的PDF输出,可借助`broom`包将检验结果转为结构化数据框,再用`kable`生成符合LaTeX规范的表格: ```r ```{r unit_root_test, echo=F, include=T, message=F, warning=F} library(tseries) library(broom) library(knitr) # 执行ADF检验并转为整洁格式 adf_tidy <- tidy(adf.test(output_day$output)) # 生成LaTeX表格 kable(adf_tidy, format = "latex", caption = "ADF单位根检验结果", booktabs = TRUE)
内容的提问来源于stack exchange,提问作者Jianing Shao
相关产品推荐
相关产品推荐

