首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换数据帧列中的文本

替换数据帧列中的文本
EN

Stack Overflow用户
提问于 2018-03-21 15:27:06
回答 1查看 1.4K关注 0票数 0

如果答案很简单,我很抱歉;我对R不熟悉,但找不到解决办法

我有一个数据框架,我感兴趣的列(“subjects”)每一行都有一个单词列表。

代码语言:javascript
复制
title  subject
-----  -----------------------------------------------
 A     c("health sciences", "life sciences")
 B     c("biochemistry", "medicine", "life sciences")
 C     c("physics and astronomy", "mathematics")

我想用“生物学”代替(因此分类)所有与生物学相关的单词。因此,基本上,如果任何标题都有一个与生物学相关的主题列表,那么它们的主题将被更简单的“生物学”所取代。

所以我的数据框架是这样的:

代码语言:javascript
复制
title  subject
-----  -----------------------------------------------
 A     biology
 B     biology
 C     c("physics and astronomy", "mathematics")

我如何将所有以关键前缀(如“生物”、“健康”、“医学”、“生命”等)开头的单词替换为“生物学”?

EN

回答 1

Stack Overflow用户

发布于 2018-03-21 15:35:08

尝试修改代码:

玩具data.frame

代码语言:javascript
复制
df<-data.frame(title=c("A","B"),subject=c("health sciences", "other stuffs"))

解决办法:

代码语言:javascript
复制
toMatch<-c("^bio","^health", "^med", "^life")
df$subject<-as.character(df$subject)
df[grepl(paste(toMatch,collapse="|"),df$subject ),"subject"]<-"biology"

你的产出:

代码语言:javascript
复制
df
  title      subject
1     A      biology
2     B other stuffs
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49410362

复制
相关文章

相似问题

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