为什么在调用函数时出现错误,但在我逐步执行该函数时却没有错误?

时间:2019-10-28 14:50:55

标签: r ordinal

运行以下代码时,出现错误:“未找到对象'modelB'”

sim_analysis <- function(temp_data) {
  modelA <- clmm("Item1 ~ Total + (1 | Clust)", data = temp_data)
  modelB <- clmm("Item1 ~ Total + Group + (1 | Clust)", data = temp_data)
  return(anova(modelA, modelB)$`Pr(>Chisq)`[2])
}
sim_analysis(my_data)

但是当我逐步执行temp_data = data的函数时,没有任何错误:

temp_data <- my_data
modelA <- clmm("Item1 ~ Total + (1 | Clust)", data = temp_data)
modelB <- clmm("Item1 ~ Total + Group + (1 | Clust)", data = temp_data)
anova(modelA, modelB)$`Pr(>Chisq)`[2]

问题必须与clmm(来自ordinal包)有关,因为当我使Item1成为数字响应时,请删除随机效应,并使用与之完全相同的方法lm,该功能可以正常工作。

要求提供一个可复制的示例,所以下面是一些生成数据的代码:

set.seed(12345678)
my_data <- data.frame(Clust = c(rep(1, 10), rep(2, 10), rep(3, 10)),
                        Group = rep(c(0,1), 15),
                        Item1 = as.factor(sample(c(1, 2, 3, 4), 30, replace = TRUE)),
                        Total = sample(20:50, 30, replace = TRUE))

0 个答案:

没有答案