我已经在一个源Rmd文件中运行了我的分析,并希望使用仅来自源文件的几个块从最终Rmd文件中编织出一个干净版本。我看到了一些关于从另一个Rmd文件中提取所有块的源代码和如何像`souce('myfile.r')`那样引用R Markdown文件的答案。我与这些帖子分享同样的担忧,那就是我不想转移到一个单独的.R文件,这似乎是
据我所知,这可能是加载
第一个似乎没有任何作用,第二个会抛出一个“<<”中的意外输入错误。
read_chunk
工作的唯一方式。
我想现在我已经可以导入源Rmd,但现在我不确定如何在最终的Rmd中调用它的特定块。下面是一个可重复的例子:
SourceCode.Rmd
---
title: "Source Code"
output:
pdf_document:
latex_engine: xelatex
---
```{r}
# Load libraries
library(knitr) # Create tables
library(kableExtra) # Table formatting
# Create a dataframe
df <- data.frame(x = 1:10,
y = 11:20,
z = 21:30)
```
一些解释性的文字
```{r table1}
# Potentially big block of stuff I don't want to have to copy/paste
# But I want it in the final document
kable(df, booktabs=TRUE,
caption="Big long title for whatever") %>%
kable_styling(latex_options=c("striped","HOLD_position")) %>%
column_spec(1, width="5cm") %>%
column_spec(2, width="2cm") %>%
column_spec(3, width="3cm")
```
[一些其他的文本,以及一堆其他我不需要任何人在干净版本中看到的块。]
请提供需要翻译的具体内容。```{r}
save(df, file="Source.Rdata")
```
FinalDoc.Rmd
---
title: "Final Doc"
output:
pdf_document:
latex_engine: xelatex
---
```{r setup, include=FALSE}
# Load libraries and data
library(knitr) # Create tables
library(kableExtra) # Table formatting
opts_chunk$set(echo = FALSE)
load("Source.Rdata")
```
据我所知,这可能是加载
SourceCode.Rmd
(来自上面第一个链接源)的最佳方式:```{r}
options(knitr.duplicate.label = 'allow')
source_rmd2 <- function(file, local = FALSE, ...){
options(knitr.duplicate.label = 'allow')
tempR <- tempfile(tmpdir = ".", fileext = ".R")
on.exit(unlink(tempR))
knitr::purl(file, output=tempR, quiet = TRUE)
envir <- globalenv()
source(tempR, local = envir, ...)
}
source_rmd2("SourceCode.Rmd")
```
目前,我不知道如何从SourceCode.Rmd
中调用特定的块table1
。我已经按照这里的说明尝试了以下方法,但没有成功:
```{r table1}
```
```{r}
<<table1>>
```
第一个似乎没有任何作用,第二个会抛出一个“<<”中的意外输入错误。