Tidyverse: объединение столбца с разной длиной в существующий тиббл - PullRequest
0 голосов
/ 16 марта 2020

У меня есть тиббл, который выглядит следующим образом:

Review_Text
<chr>
Because it is a nice game   
Best trump soumd board out there    
Boring hated because it does not work when I get done   
but you can make better game if game has unlimeted chemicals bottles    
cant get pass loading screen    
Can't play video    
Casting from Note 3 to Roku 3 screen appears to start loading then back to Roku home screen. Roku software version 6.1 build 5604. It is up to date but still not able to cast Showbox. ..  
Crashes all the time in the middle of the show. Whining ensues. Ugh.    
Crashing    
Does not work on tab 3  
Doesn't work    
Doesn't work with S7 which is unacceptable in this day and age. 
Doesn't work... I absolutely hate it    
Dont use this app battery consumers 
Dose this work for snmsung I tried some many times 😡 
😄I loved it so much I would recommend this to other families 😄    
Every time i pressed apply it just took me to the home screen   
Everytime it says collect on T.V. it won't obtain the magisword 
Excellent!!! My grandchildren watch it all the time...  
Feel like Lizzie McGuire 😂â\u009d¤

Я хочу удалить стоп-слова из Review_Text и добавить столбец (без стоп-слов) с существующим тибблом. Я использую следующий код для удаления стоп-слов:

no_stpwrd <- tibble(line = 1:nrow(tb), text = tb$Review_Text) %>%        
         unnest_tokens(word, text)%>%      
         anti_join(stop_words, by = c("word" = "word")) %>%              
         group_by(line) %>% summarise(title = paste(word,collapse =' '))

Затем я использую следующую команду для объединения no_stpwrd с существующим тибблом:

add_column(tb,no_stpwrd).

Однако, когда я запускаю Приведенная выше команда выдает сообщение об ошибке из-за несоответствия между количеством строк, которые имеют tibble и no_stowrd. В tibble есть несколько значений строк, в которых содержится единственное стоп-слово (например, строка 11 тиббла), поэтому, когда я удаляю стоп-слова, он возвращает ноль, следовательно, количество строк уменьшается в столбце no_stpwrd. Есть ли способ исправить проблему?

1 Ответ

0 голосов
/ 20 марта 2020

Вместо того, чтобы пытаться использовать add_column() здесь, вам нужно использовать соединение.

library(tidyverse)
library(tidytext)

review_df <- tibble(review_text = c("Because it is a nice game",
                                    "cant get pass loading screen",
                                    "Because I don't",
                                    "Dont use this app battery consumers")) %>%
  mutate(line = row_number())

review_df
#> # A tibble: 4 x 2
#>   review_text                          line
#>   <chr>                               <int>
#> 1 Because it is a nice game               1
#> 2 cant get pass loading screen            2
#> 3 Because I don't                         3
#> 4 Dont use this app battery consumers     4

no_stpwrd <- review_df %>%
  unnest_tokens(word, review_text) %>%
  anti_join(get_stopwords())  %>%              
  group_by(line) %>% 
  summarise(title = paste(word,collapse =' '))
#> Joining, by = "word"

no_stpwrd
#> # A tibble: 3 x 2
#>    line title                         
#>   <int> <chr>                         
#> 1     1 nice game                     
#> 2     2 cant get pass loading screen  
#> 3     4 dont use app battery consumers

Обратите внимание, что третьего документа больше нет, поскольку он состоит из всех стоп-слов , Пришло время для left_join().

review_df %>%
  left_join(no_stpwrd)
#> Joining, by = "line"
#> # A tibble: 4 x 3
#>   review_text                          line title                         
#>   <chr>                               <int> <chr>                         
#> 1 Because it is a nice game               1 nice game                     
#> 2 cant get pass loading screen            2 cant get pass loading screen  
#> 3 Because I don't                         3 <NA>                          
#> 4 Dont use this app battery consumers     4 dont use app battery consumers

Создано в 2020-03-20 с помощью пакета представитель (v0.3.0)

...