当响应已经是有序因素时,R显示“ getY(fullmf)中的错误:响应需要成为一个因素”

时间:2019-12-05 11:30:26

标签: r ordinal

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

  

getY(fullmf)错误:响应必须是一个因素

这是有错误的代码,还显示R如何将变量“帮助”理解为有序因素。

> 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"

1 个答案:

答案 0 :(得分:0)

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

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

> 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)进行检查。 如果不是这种情况,请告诉我。我将删除此答案。