tidytext包unnest_tokens丢失原列、drop参数行为异常问题求助
异常原因
- 你当前运行环境安装的tidytext版本较低,旧版本
unnest_tokens对*分组tibble(grouped_df类对象)*的列保留逻辑存在缺陷,你在执行分词前已经通过group_by(n_poem)将poems转为了分组tibble,所以触发了该bug。 drop参数失效也是同一个底层问题导致的:旧版本处理分组对象时没有正确读取参数配置,也没有正确遍历分组内的行进行分词。
解决方法
方法1:执行分词前先解除分组(兼容性最高的方案)
在调用unnest_tokens前加一步ungroup()即可,修改后的代码如下:
# 分词时自动保留所有原有列 poems %>% ungroup() %>% unnest_tokens(output = words_poem, input = lines_poem) # 保留原lines_poem列的版本也可以正常运行 poems %>% ungroup() %>% unnest_tokens(output = words_poem, input = lines_poem, drop = FALSE)
方法2:升级tidytext到最新版本
该bug在tidytext 0.3.0及之后的版本已经被官方修复,升级包后不需要修改原有代码即可正常运行:
install.packages("tidytext")
内容的提问来源于stack exchange,提问作者Dario Lacan
相关产品推荐
相关产品推荐

