将源 R 放入块中

Source R into chunk

我是 exams 的新人,所以这个问题可能是新手。

我无法 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 函数?

所有练习都被复制到一个临时目录中进行处理。因此,当您进行 source() 调用时,您位于不同的目录中。因此,您需要将其包含在完整路径 source("/path/to/functions.r") 中 - 或者您可以将文件复制到临时目录。有一个方便的功能 include_supplement() 来做后者。如果 functions.rquestion.Rnw 位于同一目录中,您只需要执行以下操作:

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

question.Rnw开头的代码块中。