首页 > 解决方案 > UseMethod(“type”)中的错误:没有适用于“type”的适用方法应用于“factor”类的对象 - 情绪分析

问题描述

当谈到 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                  
}

标签: rsentiment-analysis

解决方案


问题出在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                  
}

推荐阅读