我想让学生在他们参加的每一个测验开始时输入他们的学生ID。只要输入7位数字,就没有正确的答案。这就是我现在所拥有的,但是当定义的答案是sot单个文本时,这个函数就不会运行。我如何接受一个问题的所有可能的条目?
library(gtools)
library(learnr)
id <- permutations(10, 7, c(1,2,3,4,5,6,7,8,9,0))
question_text(
"Enter your student ID",
answer(id, correct = TRUE),
allow_retry = TRUE,
trim = TRUE
)编辑
最后我使用了classis learnr question_text。
```{r student_id, echo=FALSE}id_matrix <-置换(10,7,c(1,2,3,4,5,6,7,8,9,0))
id <- apply(id_matrix,1,函数(X) paste0(x,apply= ''))
do.call(question_text,c)
列表(“输入学生ID:"),
(id,答案,更正=真),
名单(
incorrect = "Your student ID is a 7 digit number on your Husky One Card",allow_retry = TRUE,trim = TRUE)
))
我查了三位数,结果成功了。新的问题是需要很长时间才能运行文档(到目前为止已经花了25分钟)。有什么建议可以使这个速度更快吗?
发布于 2020-09-15 05:29:37
您可以使用shinyFeedback和服务器chunck输入学生的ID:
```{r, echo=FALSE}图书馆(ShinyFeedback)
useShinyFeedback()
textInput("id",“输入您的ID")
verbatimTextOutput(“值”)
```{r, context="server"}observeEvent(输入$id,{
if (nchar(input$id) != 7 & !is.na(as.numeric(input$id))) { showFeedbackWarning( inputId = "id", text = "Enter 7 digits" ) } else { hideFeedback("id")}})

发布于 2020-09-17 15:34:03
最后我使用了classis learnr question_text。
```{r student_id, echo=FALSE}id_matrix <-置换(10,7,c(1,2,3,4,5,6,7,8,9,0))
id <- apply(id_matrix,1,函数(X) paste0(x,apply= ''))
do.call(question_text,c)
列表(“输入学生ID:"),
(id,答案,更正=真),
名单(
incorrect = "Your student ID is a 7 digit number on your Husky One Card",allow_retry = TRUE,trim = TRUE)
))
https://stackoverflow.com/questions/63894794
复制相似问题