如何将 Qualtrics 数据(csv 格式)导入到 R 中

Jet*_*Lag 5 csv import r qualtrics tidyverse

我正在尝试将从 Qualtrics 下载的数据导入到 R 中。它是一个 csv 文件。

在此输入图像描述

但是,我遇到了两个问题。

  1. R 无法自行计算出每一列的格式,可能是因为第 2 行和第 3 行(上面突出显示的)都是无用的文本。R 认为所有列都是character。不过,显然有些是date,有些是factor,有些是integer。R如何自己正确地计算出每一列的数据类?
library(tidyverse)
filename <- "mydata.csv"
df = read_csv(filename, col_names = TRUE)

Parsed with column specification:
cols(
  .default = col_character()
)
See spec(...) for full column specifications.
Run Code Online (Sandbox Code Playgroud)
  1. 我还尝试header分别加载变量名()和数据矩阵。不幸的是,使用这个skip = 3参数是行不通的。它说我的数据只有 1 个观察值...为什么?
 filename <- "mydata.csv"
 headers = read_csv(filename, col_names = FALSE, n_max = 1)
 df = read_csv(filename, skip = 3, col_names = FALSE)
 colnames(df)= headers
Run Code Online (Sandbox Code Playgroud)
Error in names(x) <- value : 
'names' attribute [273] must be the same length as the vector [1]
Run Code Online (Sandbox Code Playgroud)

将 csv 文件导入 R 的好方法是什么?

Jet*_*Lag 2

我使用以下代码将数据从 Qualtrics 导入到 R 中:

library(tidyverse)
filename <- "mydata.csv"
headers = read_csv(filename, col_names = FALSE, n_max = 1)
df = read_csv(filename, skip = 3, col_names = FALSE)
colnames(df)= headers
Run Code Online (Sandbox Code Playgroud)

不过,有一点需要注意。仅当您在下载数据时删除了所有换行符时,此方法才有效。(请参阅下图了解如何执行此操作。)我的skip = 3论点有效,因为当我从 Qualtrics 下载数据时,我删除了所有换行符。您在 Qualtrics 中提出的问题很可能包含多行。R 以这种方式理解你的文件是一个问题。我建议您在从网站下载数据时删除所有换行符。

使用上述方法,R 通常可以正确识别大多数列的数据结构,从而节省了您重新编码的大量精力。

在此输入图像描述