eval(rhs, env, env) 中的 r dplyr 文本挖掘错误:找不到对象 'score'

r dplyr text mining Error in eval(rhs, env, env) : object 'score' not found

我目前正在做一个 R 项目,我正在定义一个函数来对特定数据集执行文本挖掘。

一般的想法是有一个函数来计算挖掘的文本的数量,并将该数字乘以每个文本的分数。

到目前为止,我已经定义了函数:

function_a <- function(data, dict) {
  data %>% inner_join(dict) %>% count(word) %>% n*score
}

我试图通过将单词出现的次数与其权重相乘来计算分数,但出现错误:

Error in eval(rhs, env, env) : object 'score' not found

这是否意味着我必须将分数定义为函数变量?因为它是字典中的一列。

非常感谢对此问题的任何帮助和见解。谢谢!


您只能在 dplyr 函数(例如 selectinner_join 等)中引用 score 等列变量。您试图在 dplyr 函数之外引用 score,因此 R 正在寻找一个名为 score 的变量,但找不到它。解决方案是在 dplyr 函数中使用 score

这是另一种方法,可以通过按 word 分组并使用 summarise 来计算字数:

 function_a <- function(data, dict) {
   data %>% inner_join(dict) %>% group_by(word) %>% summarise(WeightedCount = n()*score[1])
 }