首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用R将字符串拆分为因子

使用R将字符串拆分为因子
EN

Stack Overflow用户
提问于 2013-01-24 07:01:11
回答 1查看 1.9K关注 0票数 0

我发了一个有趣的调查问卷到我们的办公室,以获得一些数据,以建立一个工作流程,以处理问卷在未来。有些问题有文字输入,回答是逗号分隔的列表。这些数据是使用Google表单收集的,因此最终形成了一个电子表格。我直接链接到这个电子表格,把数据放到R中,所以我不想对数据做更多的预处理。

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

我想将它拆分,以便iPhone部分对iPhone条等做出贡献。在其他语言中,我会用管道分隔符连接整个列表,然后在管道上再将它分割,然后使用新的列表。我被困在R中尝试这种方法,这是正确的方法,还是有更多的R方法去做呢?

代码语言:javascript
运行
复制
a <- BVNdhData$Pets
b <- paste(a,collapse ="|")
c <- strsplit(b,"|",fixed=TRUE)

这一切都有效,但留给我一份清单,我不知道该如何处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-24 08:33:37

如果对unlist()的结果调用strsplit(),就会得到包含文本所有组件的单个字符向量:

代码语言:javascript
运行
复制
text <- c("cake|pie|sausage roll", "scotch egg|pie")
x <- unlist(strsplit(text, "\\|"))

使用table()对条目进行列表:

代码语言:javascript
运行
复制
table(x)

x
        cake          pie sausage roll   scotch egg 
           1            2            1            1 

然后强迫它进入数据框架..。

代码语言:javascript
运行
复制
dat <- as.data.frame(table(x))
dat


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

..。和情节:

代码语言:javascript
运行
复制
library(ggplot2)
ggplot(dat, aes(x, Freq)) + geom_point()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14495639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档