如何删除列中的特定单词

时间:2018-04-23 16:19:13

标签: r string tm tidytext

我有一个由几个国家办事处组成的专栏与一家公司联系,我希望缩短fx:中国国家办事处和孟加拉国国家办事处,只有中国或孟加拉国 - 换句话说,删除“"办公室"和#34;国家"来自名为Imp_Office的专栏。

我尝试使用tm-package,参考之前的帖子,但没有任何反应。

我写的内容:

library(tm)
stopwords = c("Office", "Country","Regional")
MY_df$Imp_Office <- gsub(paste0(stopwords, collapse = "|","", 
MY_df$Imp_Office))

我收到以下错误消息:

  Error in gsub(paste0(stopwords, collapse = "|", "", MY_df$Imp_Office)) 
    : 
      argument "x" is missing, with no default

我也尝试使用函数readLines:

stopwords = readLines("Office", "Country","Regional")
MY_df$Imp_Office <- gsub(paste0(stopwords, collapse = "|","", 
MY_df$Imp_Office))

但这对任何事都没有帮助

我已经考虑过使用其他一些字符串操作方法的可能性,但我不需要检测,替换或删除空格 - 所以我有点迷失在这里。

谢谢。

1 个答案:

答案 0 :(得分:2)

首先,让我们设置一个数据框,其中包含您所描述的列:

library(tidyverse)


df <- data_frame(Imp_Office = c("China Country Office",
                                "Bangladesh Country Office",
                                "China",
                                "Bangladesh"))
df
#> # A tibble: 4 x 1
#>   Imp_Office               
#>   <chr>                    
#> 1 China Country Office     
#> 2 Bangladesh Country Office
#> 3 China                    
#> 4 Bangladesh

然后我们可以使用stringr包中的str_remove_all()来删除你不想要的任何文本。

df %>%
    mutate(Imp_Office = str_remove_all(Imp_Office, " Country| Office"))
#> # A tibble: 4 x 1
#>   Imp_Office
#>   <chr>     
#> 1 China     
#> 2 Bangladesh
#> 3 China     
#> 4 Bangladesh

reprex package(v0.2.0)创建于2018-04-24。