如何使用 stringr 和 rebus 删除部分字符串?

How do I remove parts of strings using stringr and rebus?

我想使用 stringrrebus 删除数据框中的部分字符串。具体来说,我想删除以 space 开头和数字结尾的部分。

以下是我的数据框:

df<-data.frame(ID = 1:8, Medication = c("FOLIC ACID 5MG TABLET", "RIBAVIRIN 200MG TAB", "ACARBOSE 50MG TABLET", 
                                        "AmLODIPine 5MG TABLET", "MAGNESIUM TRISILICATE MIXTURE 200ML", 
                                        "RESONIUM 15G/60ML SUSPENSION", "CALCIUM & VIT D TABLET", NA))

我想要的数据框是:

df_new<-data.frame(ID = 1:8, Medication = c("FOLIC ACID", "RIBAVIRIN", "ACARBOSE", 
                                            "AmLODIPine", "MAGNESIUM TRISILICATE MIXTURE", 
                                            "RESONIUM", "CALCIUM & VIT D TABLET", NA))

我尝试了以下代码,但它只有助于去除药物强度(例如 5MG)而不是测量单位(例如 TABLET):

df %>% mutate(Medication = str_replace(Medication, pattern = SPC %R% 
                                         one_or_more(DGT) %R% 
                                         one_or_more(WRD) %R%
                                         or(one_or_more(SPC), one_or_more(WRD)), 
                                       replace = ""))

我该如何解决这个问题?

  transform(df,Medication=sub("\s\d.*","",df$Medication))
  ID                    Medication
1  1                    FOLIC ACID
2  2                     RIBAVIRIN
3  3                      ACARBOSE
4  4                    AmLODIPine
5  5 MAGNESIUM TRISILICATE MIXTURE
6  6                      RESONIUM
7  7        CALCIUM & VIT D TABLET
8  8                          <NA>