如何修复 R/exams 错误 "could not find function answerlist"
How to fix the R/exams error "could not find function answerlist"
我以 R/Markdown 格式创建了一个 R/exams 问题。当我尝试编译然后将其带到 exams2moodle
和/或 exams2pdf
时,我收到以下错误消息:
Error in answerlist (questions, markup = "markdown"): could not find function answerlist.
练习是:
```{r, data generation, echo = FALSE, results = "hide"}
#1a.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. CUELLO
a1<-sample(seq(from = 100, to = 250, by = 2), 10)
casilla1<-min(a1)
casilla2<-max(a1)
increm<-casilla2-casilla1
a2<-sample(seq(from = casilla2, to = casilla2+increm, by = 2))
casilla3<-min(a2)
casilla4<-max(a2)
a3<-sample(seq(from = casilla4, to = casilla4+increm, by = 2))
casilla5<-min(a3)
casilla6<-max(a3)
#1b.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. CUERPO
crpizq<-casilla6*1.5
c1<-sample(seq(from = crpizq, to = crpizq+increm, by = 2))
casilla7<-min(c1)
casilla8<-max(c1)
c2<-sample(seq(from = casilla8, to = casilla8+increm, by = 2))
casilla9<-min(c2)
casilla10<-max(c2)
c3<-sample(seq(from = casilla10, to = casilla10+increm, by = 2))
casilla11<-min(c3)
casilla12<-max(c3)
#1c.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. PRECIO
precio1<-sample(seq(from=20000, to=40000, by=500), 1)
precio2<-precio1+15000
precio3<-precio2+15000
preciopregunta<-sample(c(precio1,precio2,precio3), 1)
#2a.GENERACION DE PREGUNTA(S)/RESPUESTA(S). ASIGNACION/DEFINICION DE VARIABLES
cuellop1<-sample(seq(from = casilla1,to = casilla2-1, by = 2), 1)
cuerpop1<-sample(seq(from = casilla7,to = casilla8-1, by = 2), 1)
cuellop2<-sample(seq(from = casilla3,to = casilla4-1, by = 2), 1)
cuerpop2<-sample(seq(from = casilla9,to = casilla10-1, by = 2), 1)
cuellop3<-sample(seq(from = casilla5,to = casilla6-1, by = 2), 1)
cuerpop3<-sample(seq(from = casilla11,to = casilla12-1, by = 2), 1)
questions<-solutions<-explanations<-NULL
if(preciopregunta==precio1) {
questions[1]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop1, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla1, " mm en contorno de cuello y ",
casilla8, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden]
} else if (preciopregunta==precio2) {
questions[1]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla3, " mm en contorno de cuello y ",
casilla10, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden]
} else {
questions[1]<-paste("Vasija de " ,cuellop3, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla5, " mm en contorno de cuello y ",
casilla12, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden] }
```
The table shows the relationship between prices and measurements that an artisan handles in the sale of vessels:
| Contorno del cuello (mm) | Contorno del cuerpo (mm) | Precio |
|:-------------------------------------:|:---------------------------------------:|:-------------------:|
| [**`r casilla1`** , **`r casilla2`**) | [**`r casilla7`** , **`r casilla8`**) | $$$**`r precio1`** |
| [**`r casilla3`** , **`r casilla4`**) | [**`r casilla9`** , **`r casilla10`**) | $$$**`r precio2`** |
| [**`r casilla5`** , **`r casilla6`**) | [**`r casilla11`** , **`r casilla12`**) | $$$**`r precio3`** |
Question
========
Which of the following pots has a price of $$$**`r preciopregunta`**?
```{r, questionlist, echo = FALSE, results = "asis"}
answerlist(questions, markup = "markdown")
```
Solution
========
```{r, solutionlist, echo = FALSE, results = "asis"}
answerlist(ifelse(solutions,"True","False"),explanations, markup = "markdown")
```
Meta-information
================
extype: schoice
exsolution:`r mchoice2string(solutions)`
exname: Vas
我无法使用您提供的练习来重现此问题,对我而言代码有效。不过,您应该将带有 table 的文本移动到 Question
部分。
可能导致问题的原因是您没有通过 library("exams")
完全加载和附加 R 包 exams
并且只使用了完全限定的 exams::exams2pdf(...)
而没有附加包.如果是这样,那么您还需要完全限定的 exams::answerlist(...)
和 exams::mchoice2string(...)
等才能使用包中的函数。 (就个人而言,我在编译任何练习之前使用 library("exams")
加载并附加包。)
我以 R/Markdown 格式创建了一个 R/exams 问题。当我尝试编译然后将其带到 exams2moodle
和/或 exams2pdf
时,我收到以下错误消息:
Error in answerlist (questions, markup = "markdown"): could not find function answerlist.
练习是:
```{r, data generation, echo = FALSE, results = "hide"}
#1a.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. CUELLO
a1<-sample(seq(from = 100, to = 250, by = 2), 10)
casilla1<-min(a1)
casilla2<-max(a1)
increm<-casilla2-casilla1
a2<-sample(seq(from = casilla2, to = casilla2+increm, by = 2))
casilla3<-min(a2)
casilla4<-max(a2)
a3<-sample(seq(from = casilla4, to = casilla4+increm, by = 2))
casilla5<-min(a3)
casilla6<-max(a3)
#1b.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. CUERPO
crpizq<-casilla6*1.5
c1<-sample(seq(from = crpizq, to = crpizq+increm, by = 2))
casilla7<-min(c1)
casilla8<-max(c1)
c2<-sample(seq(from = casilla8, to = casilla8+increm, by = 2))
casilla9<-min(c2)
casilla10<-max(c2)
c3<-sample(seq(from = casilla10, to = casilla10+increm, by = 2))
casilla11<-min(c3)
casilla12<-max(c3)
#1c.GENERACION DE DATOS. ASIGNACION/DEFINICION DE VARIABLES. PRECIO
precio1<-sample(seq(from=20000, to=40000, by=500), 1)
precio2<-precio1+15000
precio3<-precio2+15000
preciopregunta<-sample(c(precio1,precio2,precio3), 1)
#2a.GENERACION DE PREGUNTA(S)/RESPUESTA(S). ASIGNACION/DEFINICION DE VARIABLES
cuellop1<-sample(seq(from = casilla1,to = casilla2-1, by = 2), 1)
cuerpop1<-sample(seq(from = casilla7,to = casilla8-1, by = 2), 1)
cuellop2<-sample(seq(from = casilla3,to = casilla4-1, by = 2), 1)
cuerpop2<-sample(seq(from = casilla9,to = casilla10-1, by = 2), 1)
cuellop3<-sample(seq(from = casilla5,to = casilla6-1, by = 2), 1)
cuerpop3<-sample(seq(from = casilla11,to = casilla12-1, by = 2), 1)
questions<-solutions<-explanations<-NULL
if(preciopregunta==precio1) {
questions[1]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop1, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla1, " mm en contorno de cuello y ",
casilla8, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden]
} else if (preciopregunta==precio2) {
questions[1]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla3, " mm en contorno de cuello y ",
casilla10, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden]
} else {
questions[1]<-paste("Vasija de " ,cuellop3, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[1]<-TRUE
explanations[1]<-"."
questions[2]<-paste("Vasija de " ,cuellop1, " mm en contorno de cuello y ",
cuerpop2, " mm en contorno de cuerpo.")
solutions[2]<-FALSE
explanations[2]<-"."
questions[3]<-paste("Vasija de " ,cuellop2, " mm en contorno de cuello y ",
cuerpop3, " mm en contorno de cuerpo.")
solutions[3]<-FALSE
explanations[3]<-"."
questions[4]<-paste("Vasija de " ,casilla5, " mm en contorno de cuello y ",
casilla12, " mm en contorno de cuerpo.")
solutions[4]<-FALSE
explanations[4]<-"."
orden<-sample(1:4)
questions<-questions[orden]
solutions<-solutions[orden]
explanations<-explanations[orden] }
```
The table shows the relationship between prices and measurements that an artisan handles in the sale of vessels:
| Contorno del cuello (mm) | Contorno del cuerpo (mm) | Precio |
|:-------------------------------------:|:---------------------------------------:|:-------------------:|
| [**`r casilla1`** , **`r casilla2`**) | [**`r casilla7`** , **`r casilla8`**) | $$$**`r precio1`** |
| [**`r casilla3`** , **`r casilla4`**) | [**`r casilla9`** , **`r casilla10`**) | $$$**`r precio2`** |
| [**`r casilla5`** , **`r casilla6`**) | [**`r casilla11`** , **`r casilla12`**) | $$$**`r precio3`** |
Question
========
Which of the following pots has a price of $$$**`r preciopregunta`**?
```{r, questionlist, echo = FALSE, results = "asis"}
answerlist(questions, markup = "markdown")
```
Solution
========
```{r, solutionlist, echo = FALSE, results = "asis"}
answerlist(ifelse(solutions,"True","False"),explanations, markup = "markdown")
```
Meta-information
================
extype: schoice
exsolution:`r mchoice2string(solutions)`
exname: Vas
我无法使用您提供的练习来重现此问题,对我而言代码有效。不过,您应该将带有 table 的文本移动到 Question
部分。
可能导致问题的原因是您没有通过 library("exams")
完全加载和附加 R 包 exams
并且只使用了完全限定的 exams::exams2pdf(...)
而没有附加包.如果是这样,那么您还需要完全限定的 exams::answerlist(...)
和 exams::mchoice2string(...)
等才能使用包中的函数。 (就个人而言,我在编译任何练习之前使用 library("exams")
加载并附加包。)