使用dplyr和tidytext统计单词时count函数运行报错问题
问题解决方法
两个报错的核心原因都是R包命名空间冲突,其他包的同名函数覆盖了你需要调用的dplyr、tidytext函数,按以下步骤修改即可:
- 针对第二个报错
Error in count(., word, sort = TRUE) : unused argument (sort = TRUE):
该报错是因为plyr包的count函数覆盖了dplyr的count,plyr的count本身不支持sort参数。你可以直接在代码里明确指定调用dplyr的count,将最后一行代码修改为:
TTLutS.words %>% dplyr::count(word, sort = TRUE)
如果不需要使用plyr包,可以直接卸载该包避免后续冲突:
detach("package:plyr", unload = TRUE)
- 针对第一个报错
Error: objeto 'txt' no encontrado:
该报错是因为你调用的unnest_tokens不是tidytext提供的函数,被环境中其他同名函数/自定义函数覆盖了,你可以在调用时明确指定包名,修改对应代码行:
TTLutS.words <- TTLutS %>% tidytext::unnest_tokens(word, text) Ulysses.words <- Ulysses %>% tidytext::unnest_tokens(word, text)
额外优化提示:
gutenberg_download返回的结果本身就是tibble格式,不需要再用tibble()二次包裹,可直接删除TTLutS <- tibble(TTLutS_.ted)、Ulysses <- tibble(Ulysses_.ted)两行冗余代码。
如果修改后仍然报错,直接重启R会话,按顺序加载gutenbergr、dplyr、tidytext三个包后再运行代码即可。
内容的提问来源于stack exchange,提问作者Rodrigo_BC
相关产品推荐
相关产品推荐

