all.vars works fine, EXCEPT, it give a bit too much. I only want the regression variables, but in the following example I also get "k" the variable holding the chosen knots. Any machinery to find only "real" regression variables? cheers, Bendix
library( splines ) y <- rnorm(100) x <- rnorm(100) k <- -1:1 ml <- lm( y ~ bs(x,knots=k) ) mg <- glm( y ~ bs(x,knots=k) ) all.vars(ml$terms) all.vars(mg$terms) all.vars(mg$formula) ________________________________________ Fra: Marc Girondot <marc_...@yahoo.fr> Sendt: 8. marts 2018 06:26 Til: Bendix Carstensen; r-help@r-project.org Emne: Re: [R] Names of variables needed in newdata for predict.glm Hi, Some try: > names(mi$xlevels) [1] "f" > all.vars(mi$formula) [1] "D" "x" "f" "Y" > names(mx$xlevels) [1] "f" > all.vars(mx$formula) [1] "D" "x" "f" When offset is indicated out of the formula, it does not work... Marc Le 07/03/2018 à 06:20, Bendix Carstensen a écrit : > I would like to extract the names, modes [numeric/factor] and levels > of variables needed in a data frame supplied as newdata= argument to > predict.glm() > > Here is a small example illustrating my troubles; what I want from > (both of) the glm objects is the vector c("x","f","Y") and an > indication that f is a factor: > > library( splines ) > dd <- data.frame( D = sample(0:1,200,rep=T), > x = abs(rnorm(200)), > f = factor(sample(letters[1:4],200,rep=T)), > Y = runif(200,0.5,10) ) > mx <- glm( D ~ ns(x,knots=1:2,Bo=c(0,5)) + f:I(x^2) , offset=log(Y) , > family=poisson, data=dd) > mi <- glm( D ~ ns(x,knots=1:2,Bo=c(0,5)) + f:I(x^2) + offset(log(Y)), > family=poisson, data=dd) > > attr(mx$terms,"dataClasses") > attr(mi$terms,"dataClasses") > mi$xlevels > mx$xlevels > > ...so far not quite there. > > Regards, > > Bendix Carstensen > > Senior Statistician > Steno Diabetes Center > Clinical Epidemiology > Niels Steensens Vej 2-4 > DK-2820 Gentofte, Denmark > b...@bxc.dk > bendix.carsten...@regionh.dk > http://BendixCarstensen.com > > ________________________________ > > > Denne e-mail indeholder fortrolig information. Hvis du ikke er den rette > modtager af denne e-mail eller hvis du modtager den ved en fejltagelse, beder > vi dig venligst informere afsender om fejlen ved at bruge svarfunktionen. > Samtidig bedes du slette e-mailen med det samme uden at videresende eller > kopiere den. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ________________________________ Denne e-mail indeholder fortrolig information. Hvis du ikke er den rette modtager af denne e-mail eller hvis du modtager den ved en fejltagelse, beder vi dig venligst informere afsender om fejlen ved at bruge svarfunktionen. Samtidig bedes du slette e-mailen med det samme uden at videresende eller kopiere den. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.