R Tidytext和unnest_tokens错误

4

我是一名新手,开始使用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)

但我得到了这个错误信息:

在检查输入(x)时出现错误: 输入必须是任意长度的字符向量或每个向量长度为1的字符向量列表。

我尝试使用as.character(),但没有什么运气。

有什么想法可以解决这个问题吗?


@42发现austen_books是一个在github上的包中的函数,https://github.com/juliasilge/janeaustenr/blob/master/R/austen_books.R -我自己也很惊讶... - Cyrus Mohammadian
1
@CyrusMohammadian 同时也更新到了 CRAN:https://cran.r-project.org/web/packages/janeaustenr/index.html - David Robinson
2个回答

5

尝试

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

unnest_tokens_ 中下划线是必须的。

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


谢谢,这解决了问题。看起来我需要阅读不少资料才能更好地掌握 R。 - Faye
3
我们都必须从某个地方开始!祝你好运。 - Weihuang Wong

0

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

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

"events" 实际上是我的列名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接