R'中的潜在缺陷;从函数环境运行时,是否使用s`polr`函数?

R'中的潜在缺陷;从函数环境运行时,是否使用s`polr`函数?,r,function,debugging,regression,R,Function,Debugging,Regression,我可能在R中发现了MASS库的某种bugpolr函数(有序/多元回归)。问题似乎与在摘要对象上使用coef()有关,但可能不是 问题发生在以下类型的函数中: pol_me <- function(d){ some_x <- d[,1] mod <- polr(some_x ~ d[,2]) pol_sum <- summary(mod) return(pol_sum) } 我们得到了错误 Error in eval(ex

我可能在
R
中发现了
MASS
库的某种bug
polr
函数(有序/多元回归)。问题似乎与在
摘要
对象上使用
coef()
有关,但可能不是

问题发生在以下类型的函数中:

pol_me <- function(d){
    some_x   <- d[,1]
    mod      <- polr(some_x ~ d[,2])
    pol_sum  <- summary(mod)
    return(pol_sum)
}
我们得到了错误

 Error in eval(expr, envir, enclos) : object 'some_x' not found
我认为这在逻辑上不应该发生在这一点上。事实上,当我们定义替代函数时,模型命令被数值因变量的线性模型替换,即

mod       <- lm(as.numeric(some_x) ~ d[,2])
mod
summary(polr(dat[,1]~dat[,2])
返回半错误消息
重新拟合以获得Hessian
,这是错误的原因
polr
的参数
Hess=T
将解决您的问题。(
?polr
说Hess:是否应返回Hessian(观察到的信息矩阵)是合乎逻辑的。如果您打算在fit上调用summary或vcov,请使用此选项。)


pol\u me我需要从
pol\u me
的环境运行
polr
。我可能会给你
mod,非常感谢。这就是解决办法。
 Error in eval(expr, envir, enclos) : object 'some_x' not found
mod       <- lm(as.numeric(some_x) ~ d[,2])
pol_me <- function(d){
    some_x   <- d[,1]
    mod      <- polr(some_x ~ d[,2], Hess = T)  # modify
    pol_sum  <- summary(mod)
    return(pol_sum)
}