我有一个数据框,我感兴趣的列('subject')每行都有一个单词列表。
title subject
----- -----------------------------------------------
A c("health sciences", "life sciences")
B c("biochemistry", "medicine", "life sciences")
C c("physics and astronomy", "mathematics")
我想用“生物学”替换(并因此分类)每个标题的所有与生物学相关的单词。所以基本上,如果任何标题都有与生物相关的主题列表,那么他们的主题将被更简单的“生物学”所取代。
这样我的数据框看起来像这样:
title subject
----- -----------------------------------------------
A biology
B biology
C c("physics and astronomy", "mathematics")
我如何将所有以关键字词开头的单词(例如“bio”,“health”,“med”,“life”等)替换为“生物学”?
答案 0 :(得分:1)
尝试改编代码:
玩具data.frame
df<-data.frame(title=c("A","B"),subject=c("health sciences", "other stuffs"))
解决方案:
toMatch<-c("^bio","^health", "^med", "^life")
df$subject<-as.character(df$subject)
df[grepl(paste(toMatch,collapse="|"),df$subject ),"subject"]<-"biology"
你的输出:
df
title subject
1 A biology
2 B other stuffs