R语言walk函数筛选词数≤5的评论列表失败求助
问题解决:筛选5个及以下单词的评论列表
你的代码问题出在两个核心点:
walk()函数定位错误:它是用来执行副作用操作(比如打印、写入文件)的工具,不会返回筛选后的新列表,执行后只会原样返回输入对象。- 迭代元素引用错误:purrr的lambda表达式(
~)里,当前迭代的元素应该用.x指代,而非mydoc[[i]],你的写法根本没正确判断每个元素的长度。
正确实现方式
方式一:使用purrr包的keep()(推荐)
keep()是purrr中专门用于筛选满足条件的列表元素的函数,会直接返回筛选后的新列表:
library(purrr) # 假设mydoc中每个元素是拆分后的单词向量 short_revs <- keep(mydoc, ~ length(.x) <= 5)
方式二:基础R的Filter()函数
如果不想依赖purrr包,用基础R原生的Filter()也能实现相同效果:
short_revs <- Filter(function(x) length(x) <= 5, mydoc)
内容的提问来源于stack exchange,提问作者Niclas Kammler
相关产品推荐
相关产品推荐

