我在同一个文件夹中有两个文件:chapter1.Rmd和chapter2.Rmd,其中包含以下内容:
chapter1.Rmd
---
title: "Chapter 1"
output: pdf_document
---
## This is chapter 1. {#Chapter1}
Next up: [chapter 2](#Chapter2)
Run Code Online (Sandbox Code Playgroud)
chapter2.Rmd
---
title: "Chapter 2"
output: pdf_document
---
## This is chapter 2. {#Chapter2}
Previously: [chapter 1](#Chapter1)
Run Code Online (Sandbox Code Playgroud)
我如何编织这些以便它们组合成单个pdf输出?
当然,render(input = "chapter1.Rmd", output_format = "pdf_document")工作完美,但render(input = "chapter1.Rmd", input = "chapter2.Rmd", output_format = "pdf_document")没有.
我为什么要这样做?将巨型文档分解为逻辑文件.
我已经使用@hadley的bookdown软件包从.Rmd构建乳胶,但这对于这个特殊的任务来说似乎有些过分.有没有使用knitr/pandoc/linux命令行的简单解决方案我不见了?谢谢.
我经常有一个主R Markdown文件或knitr LaTeX文件,其中我source有一些其他R文件(例如,用于数据处理).但是,我认为在某些情况下,将这些源文件作为自己的可再现文档(例如,R Markdown文件不仅包括用于数据处理的命令,而且还生成可重复的文档来解释数据处理将是有益的.决定).
因此,我想source('myfile.rmd')在我的主R Markdown文件中有一个命令.这将提取和源代码的R代码块内的所有R代码myfile.rmd.当然,这会引起错误.
以下命令有效:
```{r message=FALSE, results='hide'}
knit('myfile.rmd', tangle=TRUE)
source('myfile.R')
```
Run Code Online (Sandbox Code Playgroud)
results='hide'如果需要输出,可以省略.即,从knitr输出的R代码myfile.rmd成myfile.R.
但是,它似乎并不完美:
source(...).因此我的问题是: 是否有更优雅的方式来获取R Markdown文件的R代码?
在我的数据集中,我有60个组要分析,并使用R Markdown将其放入HTML报告中.因为我想对每个组应用相同的分析,我希望有一种方法可以动态生成代码块/分析.
简单地说,我想避免复制块60次.
我碰到这个这个问题,它使用儿童knitr.我试图用虹膜数据集复制它.在下面的例子中,我想做的就是生成三个H4标题,每个标题一个.
值得注意的是,我没有嫁给这种方法,它似乎与我想要做的事情有关.
这是我使用的文件:
parent.RMD文件.这将是我的"主人"报告.
Automate Chunks of Analysis in R Markdown
========================================================
```{r setup, echo=FALSE}
library(knitr)
```
```{r run-numeric-md, include=FALSE}
out = NULL
for (i in as.character(unique(iris$Species))) {
out = c(out, knit_child('child.Rmd'))
}
Run Code Online (Sandbox Code Playgroud)
```
这是child.Rmd.
#### Species = `r [i]`
Run Code Online (Sandbox Code Playgroud) knit当我调用在调用内部使用的函数时,我遇到了重复标签错误knit。如果我标记这些块,问题就会消失。有没有办法some_function以不与父调用冲突的方式进行调用knit?
library(knitr)
some_function <- function(){
knit(text ="
```{r }
1
```
")
}
cat(knit(text ="
```{r }
some_function()
```
```{r }
some_function()
```
"))
Run Code Online (Sandbox Code Playgroud)
输出:
```r
some_function()
```
```
## Error: duplicate label 'unnamed-chunk-1'
```
Run Code Online (Sandbox Code Playgroud) 我已经在源 Rmd 文件中运行了分析,并且希望仅使用源中的几个块从最终 Rmd 文件编织一个干净的版本。我已经在另一个 Rmd 中的 Rmd 文件的源代码中看到了一些关于从源 Rmd 中提取所有块的答案,以及如何获取 R Markdown 文件(如“source('myfile.r')”)?。我对这些帖子有同样的担忧,因为我不想移植一个单独的 .R 文件,这似乎是唯一read_chunk可行的方法。
我想我现在可以导入源 Rmd,但现在我不确定如何在最终的 Rmd 中调用它的特定块。这是一个可重现的示例:
源代码.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)
```
Run Code Online (Sandbox Code Playgroud)
一些解释性文字
```{r table1}
# Potentially big block of stuff I don't want to have …Run Code Online (Sandbox Code Playgroud)