如何在r中转换.csv数据

  • 本文关键字:转换 csv 数据 r
  • 更新时间 :
  • 英文 :


我找到了一个我想使用的数据集,但数据设置如下:

userid
q1answerq2answerq3answerq4answerq5answerq6answer

等。有超过30000个用户,每个用户大约70个q。我需要能够访问的数据与列和行图表,即

userid  q1    q2   q3   q4
id#.    answ answ answ answ

这是可能的吗?

我用r访问的是一个。csv文件。

输入图片描述

示例数据,保存为sampledata文件:

39886
3   24  4646    3   19
39999
4   25  4647    4   20

(那些是制表符,不是空格)

代码:

contents <- strsplit(readLines("sampledata"), "\t")
isuserid <- lengths(contents) == 1
dat <- do.call(rbind,
lapply(split(contents, cumsum(isuserid)), function(oneuser) {
cbind(oneuser[[1]], do.call(rbind, oneuser[-1]))
}) )
dat <- setNames(as.data.frame(dat), c("user", paste0("q", seq_len(ncol(dat) - 1))))
dat
#    user q1 q2   q3 q4 q5
# 1 39886  3 24 4646  3 19
# 2 39999  4 25 4647  4 20