2015-11-02 16 views
9

Có thể lấy tất cả mã trong phụ lục hay không. Nói rằng tôi có hai đoạn trong một tài liệu và sau đó là một số văn bản.Tạo phụ lục có mã R trong rmarkdown/knitr

```{r, echo=TRUE} 
x <- 4+5 
x 
``` 
Above is X output. 

```{r, echo=TRUE} 
y <- 22+325 
y 
``` 

Above is Y output. 

Và sau đó tôi muốn tất cả các mã trong một phụ lục nhưng hiển thị như nếu tôi đặt eval=FALSE trong đoạn.

Something như

```{r, SHOW_ALL_CODE=TRUE} 
``` 

sản lượng dự kiến ​​này:

Chunk_1 
y <- 22+325 
y 

Chunk_2 
x <- 4+5 
x 

Trả lời

10

knitr::purl() có thể trích xuất tất cả các mã R từ một tập tin markdown vào một kịch bản R. Bạn có thể thêm nó như một phụ lục.

## appendix 

```{r code=readLines(knitr::purl('~/path/to/file.Rmd', documentation = 0)), eval = FALSE} 

``` 
+0

Điều này thực sự tốt. Có thể tách các khối không? Hoặc đưa ra một tiêu đề? Bây giờ tôi phải đưa ra một tiêu đề trong mã bằng cách sử dụng '# comments'. – TKN

+0

Đặt 'tài liệu = 1'. Sau đó, tiêu đề phần sẽ được thêm dưới dạng nhận xét. Xem '? Purl' để biết chi tiết. – Thierry

7

Bạn có thể sử dụng một tham chiếu đến khối ban đầu của bạn, nhưng sau đó thay đổi các tùy chọn:

main text 

```{r blah, echo = FALSE} 
summary(cars) 
``` 

appendix 

```{r blah2, ref.label='blah', eval = FALSE} 
``` 

Mà sẽ cung cấp:

enter image description here

8

Một khả năng khác:

### Appendix 
```{r, ref.label=knitr::all_labels(),echo=TRUE,eval=FALSE} 
``` 

theo đề xuất của Yihui's nice example

+0

Câu trả lời hay nhất là câu trả lời không cần phải bao gồm đường dẫn tệp. –

Các vấn đề liên quan