Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 这些文件之间有什么区别?_R_Qualtrics - Fatal编程技术网

R 这些文件之间有什么区别?

R 这些文件之间有什么区别?,r,qualtrics,R,Qualtrics,我正在编写一个R脚本,以便根据我创建的Excel模板编写调查程序。我通过xlsx软件包从Excel中获取调查项目,然后进行一些搜索,以创建一个格式符合我要求的.txt文件。问题是,除非在生成的.txt文件中选择all,复制并粘贴到空白的.txt文件中,否则无法将其上载到Qualtrics 这不是一个关于定性的问题,实际上,我认为人们不需要了解这个平台来考虑这个问题。我认为我的问题在于R输出文件格式。我希望如果你继续读下去,你会明白我的意思 下面代码块中的所有内容都应该工作 require(xls

我正在编写一个R脚本,以便根据我创建的Excel模板编写调查程序。我通过xlsx软件包从Excel中获取调查项目,然后进行一些搜索,以创建一个格式符合我要求的.txt文件。问题是,除非在生成的.txt文件中选择all,复制并粘贴到空白的.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拒绝该文件的结果文件。如果我从这个文件中选择all并使用ST3复制到一个新的blank.txt文件中,Qualtrics会很高兴


这两个文件有什么不同?我不会在foo2.txt中更改任何内容。只需复制/粘贴到新文件中

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


这几乎总是和之间的冲突-作为行结束符


我搜索了该主题并找到了导致我将\r改为\n的原因。这就成功了。

我还没有检查你的解决方案,但是从我的头顶上看,有没有看不到的特殊字符?编码呢?如果使用UTF,是否使用BOM?我认为没有任何隐藏字符,除非我的回车符返回\r count。我在文件中指定了UTF-8,因为升华文本3的默认格式是默认编码:UTF-8。我想既然foo2.txt可以工作,既然foo2.txt在UTF-8中,它也可以工作。下面是我在?文件中找到的关于BOM的信息:从R3.0.0开始,UTF-8-BOM的编码被接受,如果存在,它将删除字节顺序标记。我尝试使用encoding=UTF-8-BOM,但出现了一个错误:不支持将“UTF-8-BOM”转换为。这使我认为这是不必要的。但我不确定。这让我想知道当你保存新的.txt文件时会发生什么。您使用什么程序来保存它?这几乎总是和-作为行结束符之间的冲突。