Встраивать, но не запускать R-скрипты в Rmarkdown - PullRequest
0 голосов
/ 28 апреля 2020

Я пишу в Rmarkdown статью о текущем проекте. У меня есть собственный файл .Rmd, в который я его пишу.

В то же время у меня есть несколько скриптов на R, которые хранятся в разных файлах с расширением .R.

В разных файлах. части статьи, которые мне нужны, чтобы описать, что это такое в этих R-сценариях, так что мне нужно встроить коды сценариев в файл Rmarkdown, не запуская его.

Подводя итог:

  • Папка 1
    • paper.Rmd
    • script1.R
    • script2.R

Я пробовал это кусок без успеха:

```{r eval=F}
source("script1.R")

1 Ответ

2 голосов
/ 28 апреля 2020

Один из вариантов будет readLines в сценарии вместо его поиска.

Рассмотрим этот тривиальный скрипт R:

writeLines("foo <- function(x) x + 2", con = "foo.R")
system("cat foo.R")
# foo <- function(x) x + 2

Вместо использования source используйте readLines.

exp <- readLines("foo.R")

Теперь у вас есть текст Rscript. Вы можете использовать cat, чтобы распечатать его.

cat(exp)
#foo <- function(x) x + 2

Или вы можете оценить его.

eval(parse(text=exp))
foo(2)
#[1] 4
...