使用R将String拆分为factor

时间:2013-01-24 07:01:11

标签: r

我向我们的办公室发送了一份有趣的调查问卷,以获取一些数据,以便将来处理调查问卷的工作流程。一些问题有文本输入,响应是逗号分隔列表。数据是使用Google表单收集的,因此最终会出现在电子表格中。我正在直接链接到这个电子表格以将数据输入到R中,因此我宁愿不再对数据进行预处理。

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

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

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

一切正常,但留给我一个列表,我不知道该怎么做。

1 个答案:

答案 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()

enter image description here