[R] Disentagling formulas

Eik Vettorazzi E.Vettorazzi at uke.uni-hamburg.de
Tue Oct 2 10:51:45 CEST 2007


I tried

formula<-y~X1+X2+X3
update.formula(formula,.-NewRandomEffects~.)

and this runs without an error. So I still didn't get the point.

You may also need to insulate your new response variable if you want to 
estimate a model with in fact only one response variable, which ist done 
by I() as in

update.formula(formula,I(.-NewRandomEffects)~.)

hrth.

Rebecca Sela schrieb:
> Update looks like the function I want to use, but it still isn't working, possibly because I am doing something more complicated than my message implied.
>
> What I want to do is subtract a vector of random effects (determined within the function) from Y.  I hoped that something like this:
> 	tree <- rpart(update(formula,.-NewRandomEffects~.))
> would work, but I got the message
>         Error in update.default(formula, . - NewRandomEffects ~ .) : 
>                 need an object with call component
>
> I have considered creating a function that would subtract the random effect from each Y individually, but there is no identifier on Y.  
>
> Is there an obvious fix I'm missing?
>
> Thanks for your suggestions!
>
> Rebecca
>
>
>
> ----- Original Message -----
> From: "Eik Vettorazzi" <E.Vettorazzi at uke.uni-hamburg.de>
> To: "Rebecca Sela" <rsela at stern.nyu.edu>
> Cc: r-help at r-project.org
> Sent: Monday, October 1, 2007 11:34:13 AM (GMT-0500) America/New_York
> Subject: Re: [R] Disentagling formulas
>
> maybe I didn't understand the problem, but you can do sth like
>
> formula<-y~X1+X2+X3
> lm(update.formula(formula,f(Y)~.))
>
> maybe
> ?all.vars
> or
> ?terms
> will help you too.
>
> hth.
>
>
> Rebecca Sela schrieb:
>   
>> I am writing a program in which I would like to take in a formula, change the response (Y) variable into something else, and then pass the formula, with the new Y variable to another function.  That is, I am starting with 
>>          formula <- Y~X1+X2+X3
>> and I'd like to do something like
>>          Y <- formula$Y
>>          newY <- f(Y)
>>          lm(newY~X1+X2+X3)
>> So far, it seems that my only option will be a very complicated sequence of steps involving match.call().  Is there a simpler way to change the response variable in a formula?
>>
>> Thanks in advance!
>>
>> Rebecca
>>
>> --
>> Rebecca Sela
>> Statistics Department
>> Stern School of Business
>> New York University
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> 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.
>>   
>>     
>
>
>   


-- 
Eik Vettorazzi
Institut für Medizinische Biometrie und Epidemiologie
Universitätsklinikum Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/42803-8243
F ++49/40/42803-7790



More information about the R-help mailing list