eval(predvars,data,env)中的错误:找不到对象“帮助”

时间:2019-12-09 13:58:47

标签: r

>hyp1.model1<-clmm(helpfulness~reflectiontype+session+(1+reflectiontype|participant),data=hyp1data)
>summary(hyp1.model1) #summary was produced but I won't replicate it here
>anova(hyp1.model1,type="II")
Error in eval(predvars,data,env):object 'helpfulness' not found

我想在hyp1.model1上运行方差分析-该模型最初运行良好,并且在我使用此变量的其他任何代码中都没有出现“帮助”问题。到目前为止,R与数据集的链接已完全完善,并且数据集中的变量列标题与R中的变量标签之间似乎没有区别(因此所有其他代码都已识别出它)。

为什么要运行方差分析时突然出现问题?

4 个答案:

答案 0 :(得分:1)

我的猜测是helpfulness不在您的数据帧hyp1data中。在第一行中创建模型时,可以在本地环境中找到模型(您在R中创建的所有变量)。但是,当您运行第三行时,代码将在您指定的数据框中专门查找helpfulness。如果不存在,它会像这样失败。

尝试:

hyp1data$helpfulness <- helpfulness

可以解决吗?

答案 1 :(得分:1)

我遇到了同样的错误,但认为答案可能更具描述性。我相信会出现错误,因为stats::anova()car::Anova()函数没有识别ordinal::clmm模型的方法。

要使用ordinal::clmm()运行累积链接混合模型并获取后续偏差表,请确保同时加载ordinalRVAideMemoire程序包。 RVAideMemoire提供了使用Anova.clmm()获取偏差表的方法。

# fake data
set.seed(5)
hyp1data <- data.frame(
  participant = c(paste0("id", 1:50),paste0("id", 1:50), paste0("id", 1:50),paste0("id", 1:50)),
  session = c(rep(1, 50), rep(2,50), rep(1, 50), rep(2,50)),
  reflectiontype = c(rep(1, 100), rep(2, 100)),
  helpfulness = sample(1:7, 100, replace = TRUE))

hyp1data[,1:3] <- lapply(hyp1data[,1:3], factor)
hyp1data$helpfulness <- factor(hyp1data$helpfulness, ordered = TRUE)

# load libraries
library(ordinal)
library(RVAideMemoire)

# use RVAideMemoire::Anova.clmm
hyp1.model1<-clmm(helpfulness~reflectiontype+session+(1+reflectiontype|participant),data=hyp1data)
summary(hyp1.model1) 
RVAideMemoire::Anova.clmm(hyp1.model1,type="II")

答案 2 :(得分:0)

我找到了一种使用教程“ RVAideMemoire”和“ car”来进行方差分析的方法:

法比安·布鲁斯(Fabian Bross)(2019)。使用混合效应模型分析可接受性评级数据。 版本1.0。美美男在线:www.fabianbross.de/mixedmodels.pdf。

最后的部分很好地描述了如何以这种方式跟踪clmm模型。

答案 3 :(得分:0)

请注意另一个可能的解决方案:当我的数据被调用为$username = '$(username)' $password = '$(password)' $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password))) $apiUrl = "https://$(siteName).scm.azurewebsites.net/api/vfs/site/your-file" $filePath = "$(System.DefaultWorkingDirectory)/your-file" $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", ("Basic {0}" -f $base64AuthInfo)) $headers.Add("If-Match", "*") Invoke-RestMethod -Uri $apiUrl -Headers $headers -Method PUT -InFile $filePath -ContentType "multipart/form-data" 时,我遇到了同样的问题-在函数调用中的某个地方,这一定与df函数混淆了。重命名数据框解决了该问题。