从R中的字符串中提取特定单词

时间:2016-09-28 19:30:46

标签: r

我有一个data.frame

 >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中提取的单词。如果您有解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

不清楚条件,也许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"