Как считать текст, кроме слов в скобках? - PullRequest
0 голосов
/ 02 января 2019

Я хочу создать новый столбец, показывающий количество слов для каждого фильма в кадре данных, но название некоторых фильмов, включая квадратные скобки, и я не хочу считать слова в квадратных скобках, как я могу его кодировать?Кстати, я пытаюсь использовать функцию str.count, и я показываю свой код, который считает все слова.

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

Example dataframe

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Здесь можно проверить количество слов (буквенно-цифровых символов), разделенных пробелом (\\s) или в начале строки (^)

library(tidyverse)
movie %>% 
    mutate(words.of.title=str_count(str_trim(film), "(^|\\s)[[:alnum:]]+"))
0 голосов
/ 02 января 2019

Вы можете сделать это, используя gsub для удаления скобок и текста внутри них.Ниже приведены сведения о решении и его решении.

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

Создано в 2019-01-02 пакетом Представить (v0.2.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...