如何计算文字但不包括方括号中的单词?

时间:2019-01-01 23:08:12

标签: r rstudio

我想生成一个新列,以显示数据帧中每部电影的单词计数,但是某些电影的名称包括括号,并且我不想计算括号中的单词,如何编码?顺便说一句,我正在尝试使用str.count函数,并显示了计算所有单词的代码。

movie <- movie %>% mutate(words.of.title = str_count(str_trim(film), "\\S+"))

Example dataframe

2 个答案:

答案 0 :(得分:1)

这里是一个选项,用于检查用空格(\\s)或字符串开头(^)分隔的单词(字母数字字符)的计数

library(tidyverse)
movie %>% 
    mutate(words.of.title=str_count(str_trim(film), "(^|\\s)[[:alnum:]]+"))

答案 1 :(得分:0)

您可以通过使用gsub删除括号和其中的文本来执行此操作。请参见下面的reprex和解决方案。

library(dplyr)
library(stringr)

df <- data.frame(id=c(1,2,3),
                 film=c('Film','Film with (brackets)','Another film'))

movie <- df %>% 
  mutate(words.of.title = str_count(str_trim(gsub('\\(.*?\\)', '', film)), "\\S+"))

movie
#>   id                 film words.of.title
#> 1  1                 Film              1
#> 2  2 Film with (brackets)              2
#> 3  3         Another film              2

reprex package(v0.2.0)于2019-01-02创建。