2016-09-28 83 views
1

特定的词我有data.frame提取从字符串中的R

>df 
     ID    NUM 
    ABC.s4543rp.dfr54s  1234 
    com.ffd54646.ABC  54646 
    ABC     554648  
    PQR     13546 
    dfsdf56.PQR   99874 
    dsfsdff.df56.PQR  464655 
    94348.PQR.564564d  456464 
    MNO.dwee5555   54556 
    sdfdfgfdg5.MNO   87895 
    fdf.MNO.sf5e65   548644 

所以,在这里我想从ID提取特定单词。例如

  ID    NUM   Word 
     ABC.s4543rp.dfr54s  1234  ABC 
     com.ffd54646.ABC  54646  ABC 
     ABC     554648  ABC 
     PQR     13546  PQR 
     dfsdf56.PQR   99874  PQR 
     dsfsdff.df56.PQR  464655  PQR 
     94348.PQR.564564d  456464  PQR 
     MNO.dwee5555   54556  MNO 
     sdfdfgfdg5.MNO   87895  MNO 
     fdf.MNO.sf5e65   548644  MNO 

我有一些问题与上述任务。我想我必须准备我想从ID中提取的单词。如果您有解决方案,请告诉我。

回答

2

目前尚不清楚条件,或许可以使用str_extract。如果我们有一个特定单词的列表,这可以在与|分隔的模式参数中使用。

library(stringr) 
df$Word <- str_extract(df$ID, "ABC|PQR|MNO") 

,或者如果任何大写单词,使用模式[A-Z]+即一个或多个大写字母

str_extract(df$ID, "[A-Z]+") 
#[1] "ABC" "ABC" "ABC" "PQR" "PQR" "PQR" "PQR" "MNO" "MNO" "MNO" 
+0

再次感谢......在这里,我已经设置非常大的数据,我还没有名单我想要提取的词语。所以在这种情况下,我该怎么做? –

+1

@sahildesai基于这个例子,我只能找到大写字母的模式。我不知道你在原始数据集中有什么样的条件。否则,如果单词列表不那么多,创建一个这些单词的矢量,并使用'paste'与'collapse'将其转换为一个字符串,即'str_extract(df $ ID,paste(yourwordvector,collapse =“| “))' – akrun

+1

oky罚款...我会尝试以上解决方案..! –