相关疑难解决方法(0)

如何将两个RMarkdown(.Rmd)文件合并为一个输出?

我在同一个文件夹中有两个文件: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 pandoc knitr r-markdown

82
推荐指数
3
解决办法
2万
查看次数

如何像源代码('myfile.r')那样获取R Markdown文件?

我经常有一个主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.rmdmyfile.R.

但是,它似乎并不完美:

  • 它导致创建一个额外的文件
  • 如果需要控制显示,它需要出现在它自己的代码块中.
  • 它并不像简单那么优雅source(...).

因此我的问题: 是否有更优雅的方式来获取R Markdown文件的R代码?

markdown r knitr

74
推荐指数
3
解决办法
3万
查看次数

生成动态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)

r knitr r-markdown

24
推荐指数
2
解决办法
6756
查看次数

如何嵌套 knit 调用来修复重复的块标签错误?

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)

r knitr

5
推荐指数
1
解决办法
2142
查看次数

在另一个 Rmd 中运行选定的块

我已经在源 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)

r knitr r-markdown

5
推荐指数
1
解决办法
1581
查看次数

标签 统计

knitr ×5

r ×5

r-markdown ×3

markdown ×1

pandoc ×1