我正在运行一堆 logit 模型,其中一些模型具有完美的分离,会返回 glm 警告。这是显示问题的数据集:
DT <- iris
str(DT)
DT$binary <- as.numeric(DT$Petal.Width>1)
DT$dummy <- as.numeric(as.numeric(DT$Species)>2)
mylogit <- glm(binary~Sepal.Length+dummy,data = DT, family=binomial(link='logit'))
我正在 apply 函数内从 mylogit 收集估计值、模型拟合等,并希望添加一个虚拟值来显示是否返回此警告。但是,我不明白tryCatch()
语法足够,我找到的示例主要旨在返回警告等。我正在寻找类似的东西:
if(warning is returned){x <- 1}
tryCatch() 是错误的方法吗?
Yes, tryCatch
是正确使用的函数:
x <- 0
tryCatch(
mylogit <- glm(binary~Sepal.Length+dummy,data = DT, family=binomial(link='logit')),
warning = function(w) { x <<- x + 1 }
)
The <<-
是必要的,因为您要分配给函数范围之外的变量。 (通常这是一个坏主意,但在这里这是必要的。)
如果您想对警告文本执行某些操作,请使用conditionMessage(w)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)