2013-02-10 68 views
9

Đó là khá tầm thường để tải tập lệnh R bên ngoài theo this R Sweave example:Có thể gọi tập lệnh R bên ngoài từ đánh dấu R (.Rmd) trong RStudio không?

<<external-code, cache=FALSE>>= 
read_chunk('foo-bar.R') 
@ 

cùng có thể được thực hiện cho R Markdown?

+0

@DirkEddelbu ettel AFAIK, câu hỏi cụ thể này chưa được trả lời trước đây và vì tôi biết câu trả lời, [Tôi được khuyến khích tự trả lời] (http://meta.stackexchange.com/questions/12513/should-i-not-answer -my-own-questions). – opyate

+0

Một lần, có thể. Hai lần, bị nghi ngờ. –

+6

@DirkEddelbuettel Tại sao đáng ngờ? SO là một trang hỏi đáp, nơi bạn trả lời câu hỏi của chính mình. Nếu ai đó có câu hỏi, tìm kiếm SO và không thể tìm thấy câu trả lời, nhưng tìm câu trả lời với nghiên cứu của riêng họ thì chúng tôi sẽ vui vì họ quay lại đây để cung cấp câu trả lời cho những người khác có cùng câu hỏi sau. –

Trả lời

14

Có.

Đặt này ở phía trên cùng của R tập tin của bạn Markdown:

```{r setup, echo=FALSE} 
opts_chunk$set(echo = FALSE, cache=FALSE) 
read_chunk('../src/your_code.R') 
``` 

phân định mã của bạn với những gợi ý sau đây để knitr (giống như @yihui làm trong example):

## @knitr part1 
plot(c(1,2,3),c(1,2,3)) 

## @knitr part2 
plot(c(1,2,3),c(1,2,3)) 

Trong tệp R Markdown của bạn, bây giờ bạn có thể có các đoạn mã được đánh giá trong dòng:

Title 
===== 

Foo bar baz... 

```{r part1} 
``` 

More foo... 

```{r part2} 
``` 
+0

Xin lỗi, @opyate, bạn có biết, có thể sử dụng các gợi ý nhiều từ (như '# @knitr phần một') không? Sau một số thử nghiệm, tôi cho rằng điều đó là không thể nhưng có thể tôi chỉ thiếu một cái gì đó ... –

+0

Tôi hiện không được thiết lập để thử nghiệm đề xuất này, nhưng hãy thử đặt chúng trên hai dòng riêng biệt? – opyate

+0

Ý bạn là gì? Không có vấn đề gì khi đặt một từ khác trên một dòng khác. Nhưng knitr chỉ nhận ra một từ giống như tôi ... (Vấn đề là tôi đã có nhận xét trong hồ sơ của mình để chia tập tin đó thành nhiều phần. Và để không nhân các thực thể tôi đã nghĩ lại để sử dụng những nhận xét hiện tại đó với knitr ... Nhưng tiếc là điều đó dường như không hoạt động :)). –

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