UseMethod("type") 错误:没有适用于 'type' 的方法应用于 class "factor" 的对象 - 情感分析
Error in UseMethod("type") : no applicable method for 'type' applied to an object of class "factor" - 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
}
问题出在 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
}
我是 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
}
问题出在 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
}