UseMethod(“ type”)中的错误:没有将适用于'type'的适用方法应用于类“ factor”的对象-情感分析

时间:2019-07-12 08:18:35

标签: r sentiment-analysis

我是R的新手,并且希望依靠我的讲师的代码对我的学期论文进行情感分析。但是,她使用了另一本词典,所以我不得不修改我的代码,这才是麻烦所在。

我正在尝试创建一个对出现的正项进行评分的变量。但是,当我运行循环时,出现错误:

Error in UseMethod("type") : 
  no applicable method for 'type' applied to an object of class "factor"

我已经在互联网上搜索并读取到我的数据可能以错误的格式存储。但是,我的两个数据集(nss2018是我要进行分析的数据; posterms包含字典的正词)都存储为一个列表,该列表与我的讲师使用的数据类型相同

由于我通常不使用R,所以我有点绝望,对此毫无意义。

我用于创建变量的代码:

nss2018$posterms <- 0


for (i in 1:nrow(posterms)) {
  occur <- str_count(nss2018$text, posterms$V1[i])
  nss2018$posterms <- nss2018$posterms + occur                  
}

1 个答案:

答案 0 :(得分:0)

问题出在string_count。如果第二个参数是一个因数,则会出现错误。例如:

str_count(as.factor(letters), as.factor(c('a', 'b')))
#Error in UseMethod("type") : 
#  no applicable method for 'type' applied to an object of class "factor"

将其转换为character,就可以了:

 str_count(as.factor(letters), as.character(as.factor(c('a', 'b'))))
 #[1] 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

所以在您的情况下:

for (i in 1:nrow(posterms)) {
  occur <- str_count(nss2018$text, as.character(posterms$V1[i]))
  nss2018$posterms <- nss2018$posterms + occur                  
}