我向我们的办公室发送了一份有趣的调查问卷,以获取一些数据,以便将来处理调查问卷的工作流程。一些问题有文本输入,响应是逗号分隔列表。数据是使用Google表单收集的,因此最终会出现在电子表格中。我正在直接链接到这个电子表格以将数据输入到R中,因此我宁愿不再对数据进行预处理。
因为进入R的csv也以逗号分隔,我将逗号交换为管道('|')。 我想在回答诸如“你最喜欢的工业设计是什么”之类的问题时制作条形图,但很多人都说“iPhone,可乐瓶”之类的东西。这对我来说是一个标有iPhone |可乐瓶的酒吧。
我想把它分开,以便iPhone部分有助于iPhone吧等。 在其他语言中,我将整个列表与管道分隔符连接起来,然后在管道上再次拆分,然后使用该新列表。我在R中试图采用这种方法;它是正确的方法还是有更多的R方式去做?
a <- BVNdhData$Pets
b <- paste(a,collapse ="|")
c <- strsplit(b,"|",fixed=TRUE)
一切正常,但留给我一个列表,我不知道该怎么做。
答案 0 :(得分:2)
如果您对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()