Можно ли вызвать внешний скрипт R из уценки R (.Rmd) в RStudio?

Достаточно просто загрузить внешние R-скрипты в соответствии с этим примером R Sweave:

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

Можно ли сделать то же самое для R Markdown?


person opyate    schedule 10.02.2013    source источник
comment
@DirkEddelbuettel Насколько я знаю, на этот конкретный вопрос раньше не было ответа, и, поскольку я знаю ответ, Мне рекомендуется отвечать самому себе.   -  person opyate    schedule 10.02.2013
comment
Один раз, может быть. Дважды вызывает подозрение.   -  person Dirk Eddelbuettel    schedule 10.02.2013
comment
@DirkEddelbuettel Почему подозрительно? SO — это сайт вопросов и ответов, где поощряется ответ на ваш собственный вопрос. Если у кого-то есть вопрос, он ищет SO и не может найти ответ, но находит ответ в своих собственных исследованиях, то мы должны быть счастливы, что они вернутся сюда, чтобы предоставить этот ответ другим с тем же вопросом позже.   -  person Dan Midwood    schedule 10.02.2013
comment
@DanMidwood, это подозрительное поведение, потому что в обоих случаях он просто повторял либо файл справки напрямую, либо примеры с веб-сайта, которые действуют как справка.   -  person mnel    schedule 11.02.2013


Ответы (1)


Да.

Поместите это вверху вашего файла R Markdown:

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

Разделите свой код следующими подсказками для knitr (так же, как @yihui делает в пример):

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

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

В вашем файле R Markdown теперь вы можете оценивать фрагменты в режиме реального времени:

Title
=====

Foo bar baz...

```{r part1}
```

More foo...

```{r part2}
```
person opyate    schedule 10.02.2013
comment
Извините, @opyate, вы знаете, можно ли использовать подсказки из нескольких слов (например, # @knitr part one)? После некоторого тестирования я предполагаю, что это невозможно, но, возможно, я просто что-то упускаю... - person A S; 29.04.2015
comment
В настоящее время я не настроен для проверки этого предложения, но попробуйте поместить их в две отдельные строки? - person opyate; 29.04.2015
comment
Что ты имеешь в виду? Не проблема поставить другое слово на другой строке. Но Knitr распознает только одно слово, как мне кажется... (Дело в том, что у меня уже есть комментарии в моем файле, которые делят этот файл на разделы. И чтобы не множить сущности, я думал использовать эти существующие комментарии также повторно с вязалкой... Но, к сожалению, это не работает :)). - person A S; 29.04.2015
comment
Поясню: # @knitr part затем на следующей строке # @knitr one. - person opyate; 29.04.2015
comment
Просто для ясности: нет, это тоже не работает. В любом случае, спасибо за вашу поддержку. - person A S; 29.04.2015
comment
Как насчет побега из космоса? например # @knitr one\ two - person opyate; 29.04.2015
comment
Нет извини :). (Также пробовал разные кавычки... С тем же результатом.) - person A S; 29.04.2015
comment
Хуже всего то, что кажется, что вы ничего не можете добавить после первого слова после # @knitr. То есть я использую свертывание RStudio, добавляя #### в конце комментария для разделения разных разделов — и нет, вы не можете этого сделать. В результате приходится дублировать довольно много комментариев. - person A S; 29.04.2015
comment
И единственное решение, чтобы избежать этого, кажется, сначала прочитать файл, каким-то образом поиграть с sub, создать файл tmp только для вязания, read_chunk этот файл tmp, вязать, удалить файл tmp. - person A S; 29.04.2015