Почему возникает ошибка при вызове функции, а не при ее выполнении? - PullRequest
0 голосов
/ 28 октября 2019

Когда я запускаю следующий код, я получаю сообщение об ошибке: «объект '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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...