0
我正在嘗試編寫一個R函數來運行加權(可選)迴歸,並且我很難讓權重變量正常工作。 以下是該功能的簡化版本。將權重參數傳遞給R函數中的迴歸函數
HC <- function(data, FUN, formula, tau = 0.5, weights = NULL){
if(is.null(weights)){
est <- FUN(data = data, formula = formula, tau = tau)
intercept = est$coef[["(Intercept)"]]
zeroWorker <- exp(intercept)
}
else {
est <- FUN(data = data, formula = formula, tau = tau, weights = weights)
intercept = est$coef[["(Intercept)"]]
zeroWorker <- exp(intercept)
}
return(zeroWorker)
}
如果我不使用權值參數,該函數可以很好地工作。
mod1 <- HC(data = mydata, formula = lin.model, tau = 0.2,
FUN = rq)
但是,當我使用權值參數時拋出錯誤消息。
mod2 <- HC(data = mydata, formula = lin.model, tau = 0.2,
FUN = rq, weights = weig)
我谷歌的問題,這個職位似乎是最接近我的問題,但我仍然無法得到它的工作。 R : Pass argument to glm inside an R function。 任何幫助將不勝感激。 我的問題可以與被複制:
library("quantreg")
data(engel)
mydata <- engel
mydata$weig <- with(mydata, log(sqrt(income))) # Create a fictive weigth variable
lin.model <- foodexp~income
mod1 <- HC(data = mydata, formula = lin.model, tau = 0.2,
FUN = rq) # This works perfectly
mod2 <- HC(data = mydata, formula = lin.model, tau = 0.2,
FUN = rq, weights = weig) # throws an error.
錯誤HC(數據= MYDATA,式= lin.model,tau蛋白= 0.2,FUN = RQ,權重= weig): 對象 'weig' 未找到
謝謝托馬斯!你是一個拯救生命的人。它現在完美。 – sbik 2014-11-20 17:25:00