Для запуска многих моделей можно сделать циклы *apply
и вывести результаты в объект списка. В этом случае переменной l oop будет номер строки i
, варьирующийся от 1 до nrow(df1) - 1
.
n <- nrow(df1)
probit_list <- lapply(seq.int(n)[-n], function(i){
C4 <- c(df1$C2[seq.int(i)], df1$C3[-seq.int(i)])
C4 <- ordered(C4, levels = levels(df1$C2))
dftmp <- data.frame(C1 = df1$C1, C4)
tryCatch(glm(C1 ~ C4, data = dftmp, family = binomial(link = "probit")),
error = function(e) e)
})
Чтобы узнать, сколько выдало ошибку, запустите
ok <- sapply(probit_list, inherits, "error")
sum(!ok)
Данные испытаний
set.seed(1234)
n <- 9
df1 <- data.frame(
C1 = rbinom(n, 1, prob = c(0.4, 0.6)),
C2 = ordered(sample(1:4, n, TRUE), levels = 1:4),
C3 = ordered(sample(1:4, n, TRUE), levels = 1:4)
)