3

我有一个由与公司关联的几个国家办事处组成的列,我想在其中缩短 fx:中国国家办事处和孟加拉国国家办事处,仅中国或孟加拉国 - 换句话说,删除“办公室”和“国家”这两个词来自名为 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))

但这也无济于事

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

谢谢你。

4

1 回答 1

10

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

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

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

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 包(v0.2.0)于 2018 年 4 月 24 日创建。

于 2018-04-24T18:25:53.600 回答