0

我向我们的办公室发送了一份有趣的调查问卷,以获取一些数据,以便为将来处理调查问卷的工作流程拼凑起来。一些问题有文本输入,答案是逗号分隔的列表。这些数据是使用谷歌表格收集的,所以它们最终形成了一个电子表格。我直接链接到此电子表格以将数据导入 R,因此我不希望对数据进行任何比我必须做的更多的预处理。

因为进入 R 的 csv 也是逗号分隔的,所以我将逗号交换为管道 ('|')。我想根据对“你最喜欢的工业设计是什么”之类的问题的回答制作条形图,但很多人都说过“iPhone,可乐瓶”之类的话。这对我来说是一个标有 iPhone| 可乐瓶的酒吧。

我想将其拆分,以便 iPhone 部分有助于 iPhone 栏等。在其他语言中,我会将整个列表与管道分隔符连接起来,然后在管道上再次拆分,然后使用该新列表。我一直在 R 中尝试这种方法;这是正确的方法还是有更多的 R 方法?

a <- BVNdhData$Pets
b <- paste(a,collapse ="|")
c <- strsplit(b,"|",fixed=TRUE)

一切正常,但给我留下了一个我不知道该怎么做的清单。

4

1 回答 1

3

如果您调用unlist()结果,strsplit()您将获得一个包含文本所有组件的单个字符向量:

text <- c("cake|pie|sausage roll", "scotch egg|pie")
x <- unlist(strsplit(text, "\\|"))

用于table()将条目制成表格:

table(x)

x
        cake          pie sausage roll   scotch egg 
           1            2            1            1 

然后将其强制到数据框...

dat <- as.data.frame(table(x))
dat


             x Freq
1         cake    1
2          pie    2
3 sausage roll    1
4   scotch egg    1

...和情节:

library(ggplot2)
ggplot(dat, aes(x, Freq)) + geom_point()

在此处输入图像描述

于 2013-01-24T08:33:37.380 回答