R Tidytext和unnest_tokens错误

时间:2016-08-30 02:13:28

标签: r text-mining

对R来说很新,并且已经开始使用tidytext包。

我正在尝试使用参数来输入unnest_tokens函数,以便我可以进行多列分析。所以不是这个

library(janeaustenr)
library(tidytext)
library(dplyr)
library(stringr)

original_books <- austen_books() %>%
  group_by(book) %>%
  mutate(linenumber = row_number(),
         chapter = cumsum(str_detect(text, regex("^chapter [\\divxlc]",
                                                 ignore_case = TRUE)))) %>%
  ungroup()

original_books

tidy_books <- original_books %>%
              unnest_tokens(word, text)

最后一行代码是:

output<- 'word'
input<- 'text'

tidy_books <- original_books %>%
              unnest_tokens(output, input)

但我得到了这个:

  

check_input(x)出错:    输入必须是任何长度的字符向量或字符列表    向量,每个向量的长度为1.

我尝试使用as.character()没有太多运气。

关于这将如何运作的任何想法?

2 个答案:

答案 0 :(得分:5)

尝试

tidy_books <- original_books %>% 
              unnest_tokens_(output, input)

使用unnest_tokens_中的下划线。

unnest_tokens_unnest_tokens的“标准评估”版本,允许您将变量名称作为字符串传递。有关标准与非标准评估的讨论,请参阅Non-standard evaluation

答案 1 :(得分:0)

我遇到了同样的问题。我通过指定如下输入来解决了这个问题:

unnest_tokens(input = "events", token = "words", "word")

带有“事件”的实际上是我的列名。