2016-02-17 18 views
13

Tôi muốn chứng minh làm thế nào để viết RMarkdown, nơi trình diễn RMarkdown được nhúng trong một tài liệu RMarkdown được sử dụng để tạo tài liệu khóa học. Trong khối mã có rào chắn này, tôi không muốn đan để thực hiện đoạn mã.Nhúng Rmarkdown với Rmarkdown, mà không cần đánh giá knitr

Tôi muốn đặt một cái gì đó như thế này vào tài liệu Rmarkdown "cấp cao nhất" và có mọi thứ nằm giữa hàng rào bên ngoài được in nguyên văn theo chiều rộng cố định trong tài liệu HTML đầu ra, thay vì phải đan đánh giá mã R nhúng bên trong đoạn và mã nội tuyến.

``` 
--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your RMarkdown document. Here's a code chunk: 

```{r, eval=FALSE} 
head(mtcars) 
``` 

Now we're back into regular markdown in our embedded document. 

Here's inline code that I don't want executed either; 
e.g. mean of mpg is `r mean(mtcars$mpg)`. 

``` 

Tôi đã thử zero-width space trick in knitr example 65, nhưng điều này không thành công khi cố gắng biên dịch sang PDF (tôi cần cả HTML và PDF).

Trả lời

12

Đây là một cách để đạt được điều đó. Bạn có thể thêm `r ''` trước tiêu đề đoạn để đoạn mã không được nhận dạng và sử dụng knitr::inline_expr() để tạo `r `.

```` 
--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your RMarkdown document. Here's a code chunk: 

`r ''````{r, eval=FALSE} 
head(mtcars) 
``` 

Now we're back into regular markdown in our embedded document. 

Here's inline code that I don't want executed either; 
e.g. mean of mpg is `r knitr::inline_expr('mean(mtcars$mpg)')`. 

```` 

Nó sẽ dễ dàng hơn nếu bạn chỉ cần lưu tài liệu ví dụ R Markdown trong một file riêng biệt, và bao gồm nó trong tài liệu cấp cao nhất qua readLines(), ví dụ

```` 
`r paste(readLines('example.Rmd'), collapse = '\n')` 
```` 

Để bao gồm ba backticks trong khối mã rào, bạn cần nhiều hơn ba dấu gạch chéo ngược. Đó là lý do tại sao tôi đang sử dụng bốn ở đây.

+0

Điều đó hoạt động, chỉ có điều tôi thay đổi sẽ đóng hàng rào dưới cùng một cách, với 'r ''' '' '. Nếu không, cú pháp tô sáng trong RStudio sẽ bị mất. –

+0

Phải. Điều đó sẽ giúp RStudio với cú pháp tô sáng, mặc dù nó không cần thiết cho knitr để làm việc. –

+0

Đối với tôi ('rmarkdown_1.0') đoạn nội tuyến yêu cầu thoát bổ sung cho backticks xuất hiện. – tonytonov

1

Không chắc chắn về đầu ra pdf, nhưng xung quanh rmarkdown bản demo của bạn với:

<pre> 
... 
</pre> 

dường như làm việc cho html.

+0

yep, không phải cho pdf. –

4

Tôi làm điều này bằng cách sử dụng chức năng cat, hoạt động với cả đầu ra HTML và PDF.

--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your R Markdown document. Here's a code chunk: 

```{r, echo=FALSE, comment=""} 
cat(c("```{r, eval=FALSE}", 
     "head(mtcars)", 
     "```"), 
    sep='\n') 
``` 

Now we're back into regular Markdown in our embedded document. 

Here's inline code that I don't want executed either: 

```{r, echo=FALSE, comment=""} 
cat("The mean of mpg is `r mean(mtcars$mpg)`.") 
``` 
Các vấn đề liên quan