Разбить R на кусок - PullRequest
2 голосов
/ 08 мая

Я новичок в exams, так что, возможно, этот вопрос очень новыйb ie.

Я не могу source внешний R -файл (содержит повторно используемые функции) в мой .Rnw.

MWE:

functions.r :

x <- 10

question.Rnw

<<echo=FALSE>>=
source('functions.r')
@
\begin{question}
  $x=\Sexpr{x}$
\end{question}

generate.r

library('exams')

exams2moodle('question.Rnw')

Когда я пытаюсь Rscript generate.r:

Loading required namespace: rmarkdown

Error:  chunk 1 
Error in file(filename, "r", encoding = encoding) : 
  cannot open the connection
In addition: Warning message:
In file(filename, "r", encoding = encoding) :
  cannot open file 'functions.r': No such file or directory
Execution halted

Как я могу повторно использовать собственные R-функции в каких вопросах?

1 Ответ

1 голос
/ 08 мая

Все упражнения копируются во временный каталог, где они обрабатываются. Таким образом, при вызове source() вы находитесь в другом каталоге. Поэтому либо вам нужно включить его с полным путем source("/path/to/functions.r"), либо вы можете скопировать файл во временный каталог. Для последнего есть удобная функция include_supplement(). Если functions.r находится в том же каталоге, что и question.Rnw, вам просто нужно сделать:

include_supplement("functions.r")
source("functions.r")

в фрагменте кода в начале question.Rnw.

...