我想生成一个新列,以显示数据帧中每部电影的单词计数,但是某些电影的名称包括括号,并且我不想计算括号中的单词,如何编码?顺便说一句,我正在尝试使用str.count函数,并显示了计算所有单词的代码。
movie <- movie %>% mutate(words.of.title = str_count(str_trim(film), "\\S+"))
答案 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创建。