我找到了一个我想使用的数据集,但数据设置如下:
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