[R] simple function can't find weights
Dimitri Liakhovitski
dimitri.liakhovitski at gmail.com
Wed Oct 20 17:01:59 CEST 2010
Hello!
Here is my data:
x<-data.frame(y=rnorm(100,0,1),a=rnorm(100,1,1),b=rnorm(100,2,1),weights=runif(100))
data.for.regression<-x[1:3]
names(data.for.regression)
myweights<-x$weights
I run simple weighted regression and everything is fine:
reg1<-lm(y~., data.for.regression, weights=myweights)
Then I defined a simple function for the same regression - that adds a
couple more statistics to the output - see function "weighted.reg"
below.
I run this function and try to use it:
weighted.reg(y~., MyData=x, weights.vector=myweights, file.name="TEST.csv")
And I get the following error: "Error in eval(expr, envir, enclos) :
object 'my.weights' not found"
I tried everything and still don't understand - why can't it find "my.weights"?
Thanks a lot for your help!
weighted.reg = function(formula, MyData, weights.vector, file.name)
{
library(lmtest)
library(car)
my.weights<-weights.vector
regr.f<-lm(formula,MyData,weights=my.weights,na.action=na.omit)
results<-as.data.frame(round(summary(regr.f)$coeff,3))
results$VIF<-c(NA,round(vif(regr.f),2))
results[nrow(results)+1,1]<-round(summary(regr.f)$r.squared,3)
results[nrow(results)+1,1]<-round(summary(regr.f)$adj.r.squared,3)
results[nrow(results)+1,1]<-round(dwtest(regr.f)$statistic,2)
row.names(results)[(nrow(results)-2):nrow(results)]<-c("R.Sqr",
"Adj.R.Sqr","DW")
write.csv(results,file=file.name)
return(results)
}
--
Dimitri Liakhovitski
Ninah Consulting
www.ninah.com
More information about the R-help
mailing list