当响应已经是有序因子时,R 显示 "Error in getY(fullmf) : response needs to be a factor"

R is showing "Error in getY(fullmf) : response needs to be a factor" when the response is already an ordered factor

我正在使用序数包并在 R 上使用 clmm 函数,但尽管确保我的响应变量是序数(也称为有序因子),但仍然出现以下错误:

Error in getY(fullmf) : response needs to be a factor

这是有错误的代码,还显示了 R 是如何将变量 'helpfulness' 理解为有序因子的。

> library(ordinal)
> hyp1.model1<-clmm(helpfulness~reflectiontype+session+(1+reflectiontype|participant),data=hyp1data)
Error in getY(fullmf):response needs to be a factor
> unique(helpfulness)
[1] 4 2 1 3 0 
Levels: 0 < 1 < 2 < 3 < 4
> class(helpfulness)
[1] "ordered" "factor"

对于 Roland 和 Ryan J Field 所说的内容,我没有太多要补充的。我只是想解释一下。 如果不查看您的数据,我可能完全错了。 我已经使用示例数据 wine 进行了测试。该模型仅在 ~ 左侧为数字时才给出此类错误消息。当我用数值替换其他变量时,它没有给男人任何错误信息。

您的数据 hyp1data 中似乎有两个 helpfulness:一个向量 helpfulness 和一个变量 helpfulness

> unique(helpfulness)
[1] 4 2 1 3 0 
Levels: 0 < 1 < 2 < 3 < 4
> class(helpfulness)
[1] "ordered" "factor"

只告诉向量helpfulness是一个因子。您的变量 hyp1data$helpfulness 可能仍然是数字。您可能想尝试 class(hyp1data$helpfulness) 来检查一下。 如果不是这种情况,请告诉我。我会删除这个答案。