RMarkdown中source外部脚本后无法显示变量值,求修改方案
解决RMarkdown调用外部脚本后无法渲染变量值的问题
问题原因
你在正文里写的values[1]只是被标记为代码样式的普通文本,并没有触发R代码的执行,所以不会被替换成变量的实际值。虽然source()已经加载了外部脚本的变量,但必须用RMarkdown的行内代码语法才能让这些值在输出中显示。
修改方案
方案1:直接使用行内R代码
把正文里的变量引用改成r 变量名的格式,这是RMarkdown中嵌入行内R代码的标准写法:
修改后的Values Report.Rmd完整内容:
--- title: Values report. date: 2023-11-21 output: html_document --- ```{r setup, include = FALSE} source("filepath/Values.R") # 替换为你的实际文件路径
我们关注的两个值是r values[1]和r values[2],不关注r values[3]。
### 方案2:提前赋值简化调用(适合多次使用的场景) 如果需要反复引用这些值,可以在setup代码块里先把值提取为更简洁的变量,再在行内调用:
title: Values report.
date: 2023-11-21
output: html_document
source("filepath/Values.R") # 提前提取需要的值 focus_val1 <- values[1] focus_val2 <- values[2] ignore_val <- values[3]
我们关注的两个值是r focus_val1和r focus_val2,不关注r ignore_val。
## 额外说明 用`rmarkdown::render()`后控制台Environment能看到变量,是因为render执行时会把变量加载到当前控制台会话,但RMarkdown的knit/render过程本身是在一个独立的临时R会话中完成的——不过你已经在setup块里正确source了外部脚本,所以这个临时会话里是有`values`变量的,只是之前没通过行内代码语法调用它。 内容的提问来源于stack exchange,提问作者Jay Bee
相关产品推荐
相关产品推荐

