Я провел анализ в исходном файле Rmd и хотел бы связать чистую версию из окончательного файла Rmd, используя только несколько кусков из источника.Я видел несколько ответов, касающихся извлечения всех фрагментов из исходного Rmd в Исходный код из файла Rmd в другом Rmd и Как получить исходный файл R Markdown, например `source ('myfile).r ') `.Я разделяю озабоченность этих постов тем, что я не хочу портировать отдельный файл .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")
```
На данный момент, я не знаю, как вызвать конкретный блок table1
от SourceCode.Rmd
.Я попробовал следующее в соответствии с инструкциями здесь , но безуспешно:
```{r table1}
```
```{r}
<<table1>>
```
Первый, похоже, ничего не делает, а второй выдает ошибку unexpected input in "<<"
.