对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()
没有太多运气。
关于这将如何运作的任何想法?
答案 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")
带有“事件”的实际上是我的列名。