我目前正在研究R项目,正在定义一个函数,该函数将在特定数据集上执行文本挖掘。
通常的想法是拥有一个功能,该功能可以对所挖掘文本的数量进行计数,并将该数量与每个文本的分数相乘。
到目前为止,我已经使用定义了函数:
function_a <- function(data, dict) {
data %>% inner_join(dict) %>% count(word) %>% n*score
}
我试图通过将单词出现的数量乘以其权重来计算分数,但出现错误:
Error in eval(rhs, env, env) : object 'score' not found
这是否意味着我必须将score定义为函数变量?因为它是字典中的一列。
非常感谢您对此问题的帮助和见解。谢谢!
答案 0 :(得分:1)
您只能在score
,dplyr
等函数中引用诸如select
的列变量,例如inner_join
。您试图在score
函数外部引用dplyr
,所以R正在寻找一个名为score
的变量,但找不到它。解决方案是在dplyr函数中使用score
。
这是通过word
分组并使用summarise
来获得字数来获得结果的另一种方法:
function_a <- function(data, dict) {
data %>% inner_join(dict) %>% group_by(word) %>% summarise(WeightedCount = n()*score[1])
}