将 Qualtrics 调查导入 R - 解压 zip 时出错

Importing Qualtrics survey into R - error extracting zip

我过去曾成功使用 r 中的 qualtRics 包导入和分析数据。这一次,我试图加载调查的两份副本:一次将选项作为数字,另一次将选项作为文本(因为其他人已经在调查中工作,我不能假设编号是一致的)。

这是我的代码:

#Grab list of surveys.
survey_list <- qualtRics::all_surveys()

#Define row number from the survey list, to call on later.
survey_num <- which(survey_list$name == "SurveyName")

#Load the questions from the survey into a data set.
questions <- qualtRics::survey_questions(survey_list$id[survey_num])

#Load the survey data with choices as numbers.
survey_data <-
  qualtRics::fetch_survey(survey_list$id[survey_num], 
                          save_dir = "output/",
                          label = FALSE, 
                          convert = FALSE,
                          force_request = TRUE)

#Load the survey data with choices as text.
survey_data_text <-
  qualtRics::fetch_survey(survey_list$id[survey_num],
                          save_dir = "output/",
                          label = TRUE,
                          convert = FALSE,
                          force_request = TRUE)

#Create a column map.
survey_col_map <- qualtRics::extract_colmap(survey_data_text)

我第二次调用 qualtRics::fetch_survey() 时,收到以下错误: Error: Error extracting CSV from zip file. Please re-run your query.。进一步的代码失败,因为它取决于此输出。自然是我运行rlang::last_error()rlang::last_trace(),结果在这里:

<error/rlang_error>
Error extracting CSV from zip file. Please re-run your query.
Backtrace:
 1. qualtRics::fetch_survey(...)
 2. qualtRics:::download_qualtrics_export(fetch_url, requestID, verbose = verbose)
 3. base::tryCatch(...)
 4. base:::tryCatchList(expr, classes, parentenv, handlers)
 5. base:::tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6. value[[3L]](cond)
Run `rlang::last_trace()` to see the full context.

<error/rlang_error>
Error extracting CSV from zip file. Please re-run your query.
Backtrace:
    x
 1. \-qualtRics::fetch_survey(...)
 2.   \-qualtRics:::download_qualtrics_export(fetch_url, requestID, verbose = verbose)
 3.     \-base::tryCatch(...)
 4.       \-base:::tryCatchList(expr, classes, parentenv, handlers)
 5.         \-base:::tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6.           \-value[[3L]](cond)

遗憾的是,运行 我根据反馈提出的查询并没有改变结果。我可以找到有问题的 .zip。我认为它可能会留在 'read-only' 上,但更改该文件属性不会改变结果。我是具有管理员权限的 运行 R,因此它应该有权访问 create/open/modify 文件(在其他情况下也是如此)。

我很想知道如何以两种格式连续获取相同的调查,一种是数字形式的选择,另一种是文本形式的选择。感谢您的帮助!

P.S.,首先是 Whosebug post,所以如果您需要更多信息,请告诉我。 :)

更新到 readr 2.1.0 为我解决了这个问题。

此解决方案由 Julia Silge here.

建议