首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用learnr创建一个开放的问题:r中的教程

用learnr创建一个开放的问题:r中的教程
EN

Stack Overflow用户
提问于 2020-09-15 03:51:05
回答 2查看 215关注 0票数 2

我想让学生在他们参加的每一个测验开始时输入他们的学生ID。只要输入7位数字,就没有正确的答案。这就是我现在所拥有的,但是当定义的答案是sot单个文本时,这个函数就不会运行。我如何接受一个问题的所有可能的条目?

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
```{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,答案,更正=真),

名单(

代码语言:javascript
运行
复制
incorrect = "Your student ID is a 7 digit number on your Husky One Card",
代码语言:javascript
运行
复制
allow_retry = TRUE,
代码语言:javascript
运行
复制
trim = TRUE

)

))

代码语言:javascript
运行
复制

我查了三位数,结果成功了。新的问题是需要很长时间才能运行文档(到目前为止已经花了25分钟)。有什么建议可以使这个速度更快吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-15 05:29:37

您可以使用shinyFeedback和服务器chunck输入学生的ID:

代码语言:javascript
运行
复制
```{r, echo=FALSE}

图书馆(ShinyFeedback)

useShinyFeedback()

textInput("id",“输入您的ID")

verbatimTextOutput(“值”)

代码语言:javascript
运行
复制
```{r, context="server"}

observeEvent(输入$id,{

代码语言:javascript
运行
复制
if (nchar(input$id) != 7 & !is.na(as.numeric(input$id))) {
代码语言:javascript
运行
复制
  showFeedbackWarning(
代码语言:javascript
运行
复制
    inputId = "id",
代码语言:javascript
运行
复制
    text = "Enter 7 digits"
代码语言:javascript
运行
复制
  )  
代码语言:javascript
运行
复制
} else {
代码语言:javascript
运行
复制
  hideFeedback("id")
代码语言:javascript
运行
复制
}

})

代码语言:javascript
运行
复制

票数 1
EN

Stack Overflow用户

发布于 2020-09-17 15:34:03

最后我使用了classis learnr question_text

代码语言:javascript
运行
复制
```{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,答案,更正=真),

名单(

代码语言:javascript
运行
复制
incorrect = "Your student ID is a 7 digit number on your Husky One Card",
代码语言:javascript
运行
复制
allow_retry = TRUE,
代码语言:javascript
运行
复制
trim = TRUE

)

))

代码语言:javascript
运行
复制
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63894794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档