创建一个提取特定单词

时间:2017-02-06 10:14:12

标签: r dplyr

我有一个名为“Productdes”的专栏,其中包含数千行产品描述,如:

Productdes

Varitas mágicas de Harry Potter  
Figuras de Star Wars  
Coleccionismo de Harry Potter  
Espadas de Juego de Tronos  
Bola de Dragon Z  
Estatuas de The Witcher (El Brujo)  
Figuras de Chucky El Muñeco Diabólico  
Cascos de Star Wars  
Espadas de The Legend of Zelda  
Estatuas de Los Vengadores (The Avengers)  

我想创建一个名为“Theme”的新列,该列为每一行提取该行中的某些单词,如下所示:

Theme
Harry Potter  
Star Wars  
Harry Potter  
Juego de Tronos  
Dragon Z  
El Brujo  
Chucky El Muñeco Diabólico  
Star Wars  
Zelda  
Los Vengadores  

我使用了以下功能但没有成功:

mutate(Theme = str_extract(Productdes, 
                           c("Harry Potter",Star Wars","Juego de Tronos","Dragon Z",
                             "El Brujo","Chucky El Muñeco Diabólico","Zelda",
                             "Los Vengadores")) 

我很感激任何帮助。 感谢

1 个答案:

答案 0 :(得分:0)

我们可以paste vector个字符串来创建一个带有分隔符|的单个字符,以用作str_extract

中的模式参数
v1 <-  c("Harry Potter","Star Wars","Juego de Tronos","Dragon Z",
                         "El Brujo","Chucky El Muñeco Diabólico","Zelda",
                         "Los Vengadores")

df1$Theme <- str_extract(df1$Productdes, paste(v1, collapse="|"))
df1$Theme
#[1] "Harry Potter"               "Star Wars"                  "Harry Potter"               "Juego de Tronos"           
#[5] "Dragon Z"                   "El Brujo"                   "Chucky El Muñeco Diabólico" "Star Wars"                 
#[9] "Zelda"                      "Los Vengadores"