使用lm模板生成的试题导入Canvas遇问题:函数报错及附件丢失
解决方案:R exams导入Canvas的两个问题修复
一、exams2canvas函数报错处理
报错信息:
Error in switch(type, num = "numerical_question", schoice = "multiple_choice_question", : EXPR must be a length 1 vector
- 核心原因:试题模板生成的题型
type字段不是长度为1的向量,大概率是模板中题型定义重复或不明确。 - 修复步骤:
- 打开
lm.Rmd模板,检查每个子问题的type定义,确保每个小题仅指定一种题型(如type: num或type: schoice),无重复定义。 - 用以下代码验证题型是否正常:
若输出长度大于1,回到模板调整题型设置。q <- exams2nops("lm.Rmd", n = 1, dir = tempdir()) q[[1]]$type # 输出应为单个值,如"num"或"schoice"
- 打开
二、exams2qti21导出后附件无法显示处理
问题表现:HTML中<a>regression.csv</a>缺失href属性,无法下载附件。
- 修复方法:
- 修改模板中的链接格式:将
regression.csv的引用改为标准Markdown链接格式:[regression.csv](regression.csv)。 - 导出时启用附件嵌入:
该参数会将附件打包到QTI文件中,确保Canvas能识别链接。exams2qti21("lm.Rmd", n = 10, embed = TRUE, dir = "canvas_export") - 导入Canvas时,选择对应选项确保附件被正确解析。
- 修改模板中的链接格式:将
内容的提问来源于stack exchange,提问作者CptNemo
相关产品推荐
相关产品推荐

