R/ exams2moodle不读取数据或源代码



我正试图使用R/考试与一个练习,读取本地数据集。当我以交互方式运行时,练习中的代码工作得很好,但当我在exams2moodle()中运行时,它就失败了。当我尝试在练习中source()一个R脚本时,也会出现同样的问题。

下面是一个简化的人工例子。

library("exams")
exams2moodle("mysum.Rmd")

练习文件mysum.Rmd为:

```{r, include=FALSE}
i <- sample(1:3, 1)
d <- read.csv("mydata.csv")
s <- d$x[i] + d$y[i]
```
Question
========
What is the sum of $`r i`$ + $`r i+1`$?
Meta-information
================
exname: mysum
extype: num
exsolution: `r s`

数据文件mydata.csv为:

x,y
1,5
8,3
4,4

代码在本地运行良好,因为数据文件mydata.csv在本地工作目录中。但是,在exams2moodle()(以及所有其他exams2xyz()接口)中使用了一个不同的临时目录,以免用户的工作空间被文件弄乱。

因此,当您想要使用其他文件时,您需要指示它们的绝对路径,或者需要确保它们被复制到相同的临时目录中。对于后者,有一个方便的函数include_supplement(),它复制文件,默认情况下从练习所在的同一目录中获取它们。在你的情况下,你可以添加

include_supplement("mydata.csv")

mysum.Rmd练习的第一个R代码块的开头(在read.csv()应用之前)。

我也遇到了同样的问题。您也可以通过在Rmd

中指定数据文件的完整路径来解决问题。

最新更新