这些文件有什么区别?

时间:2014-06-23 11:17:28

标签: r qualtrics

我正在编写一个R脚本来编写我创建的Excel模板中的Qualtrics调查。我通过xlsx包从Excel template中获取调查项目,然后进行一些重新设置,以按照我想要的方式创建.txt文件格式。问题是我无法将其上传到Qualtrics,除非我在生成的.txt文件中选择全部,复制并粘贴到空白.txt文件中。

这不是关于Qualtrics的问题本身,我认为不需要了解有关此平台的任何内容来考虑这个问题。我相信我的问题是R输出文件格式。我希望如果你继续阅读,你会看到我的意思。

以下代码块中的所有内容都应该有效。

require(xlsx)
# import survey file; get from Dropbox link above
  survey <- read.xlsx("template.xlsx", "survey")
  survey <- subset(survey, !is.na(survey$questiontext)) # drop if blank
  choices <- read.xlsx("template.xlsx", "choices")
# create vector to hold results
  output <- "[[AdvancedFormat]]"
# loop through every question
  for (i in 1:nrow(survey)) {
    # insert start block if one exists
      bs <- ifelse(is.na(survey$blockname[i]), "", 
                   paste0("[[Block:", 
                          as.character(survey$blockname[i]), "]]"))
    # insert end block if one exists
      be <- ifelse(is.na(survey$endblock[i]), "", 
               as.character(survey$endblock[i]))
    # insert item ID if one exists
      qid <- ifelse(is.na(survey$questionid[i]), "", 
                    paste0("[[ID:", 
                           as.character(survey$questionid[i]), "]]"))
    # subset choice sheet to selected choice
      choices.sub <- subset(choices, choices$listname==survey$choicelist[i])
      responses <- ""
    # create vector of choices
      for (ch in 1:nrow(choices.sub)) {
        responses <- paste(responses, choices.sub$label[ch], sep="\r") 
      }
    # insert page break if one exists
      pb <- ifelse(is.na(survey$pagebreak[i]) | i==nrow(survey), "", 
                   as.character(survey$pagebreak[i]))
    # add to output vector
      output <- paste(output, 
                      bs,
                      survey$questiontype[i],
                      qid,
                      survey$questiontext[i],
                      survey$choicetype[i],
                      responses,
                      pb,
                      be,
                      sep="\r")
  }
# write to txt file
  cat(output, file = (con <- file("foo1.txt", "w", encoding = "UTF-8"))); close(con)

以下是来自R. Qualtrics的结果foo1.txt文件拒绝此文件。如果我从此文件中选择全部并复制到新的空白.txt文件(使用ST3)foo2.txt,则Qualtrics很高兴。

这两个文件有什么不同?我没有改变foo2.txt中的任何内容。只需复制/粘贴到新文件中即可。

1 个答案:

答案 0 :(得分:0)

@CarlWitthoft用他的评论向我指出了正确的方向:

  

这几乎总是<CR><CR>-<LF>之间的冲突,作为行尾终结符。

我搜索了这个主题并找到了SO thread这导致我将\r更改为\n。这就行了。