[R] Names of variables needed in newdata for predict.glm

Bendix Carstensen bendix.carstensen at regionh.dk
Sat Mar 31 17:48:07 CEST 2018


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_grt at yahoo.fr>
Sendt: 8. marts 2018 06:26
Til: Bendix Carstensen; r-help at 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 at bxc.dk
> bendix.carstensen at 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 at 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.



More information about the R-help mailing list