From jorismeys at gmail.com  Fri Oct  3 16:20:49 2014
From: jorismeys at gmail.com (Joris Meys)
Date: Fri, 3 Oct 2014 16:20:49 +0200
Subject: [Rd] How I() works in a formula
In-Reply-To: <8DCBE024-DA8D-48B4-947A-FA69501F3C77@gmail.com>
References: <CAO1zAVYHdBEqX0M-wH5OsGNxe2P1BKLS07cXBba9yQTnBtPN5g@mail.gmail.com>
	<8DCBE024-DA8D-48B4-947A-FA69501F3C77@gmail.com>
Message-ID: <CAO1zAVZUoFfqU5L=ogxxdS5tcX=8MUAxOvO-eTYfqRD0thUUSQ@mail.gmail.com>

Thanks Peter! That clarifies why it felt I was chasing ghosts these past
days :) Thanks for the tip about coxph as well, there's some nice ideas to
be discovered there.

Cheers
Joris

On Fri, Oct 3, 2014 at 3:02 PM, peter dalgaard <pdalgd at gmail.com> wrote:

>
> On 03 Oct 2014, at 14:32 , Joris Meys <jorismeys at gmail.com> wrote:
>
> > Dear all,
> >
> > I'm updating a package regarding a new type of models, and I'm looking to
> > extend the formula interface with two functions (L() and R() ) for
> > construction of these models. I want to use as much of the formula
> > interface as possible, and hoped to do something similarly to I().
> >
> > I know the I() function does nothing more than add the class "AsIs". I've
> > been browsing the source code of R for a couple of days now trying to
> > locate where this class assignment gets translated into a specific
> action,
> > but i couldn't locate it. I've been as far as the internal C function
> > modelframe.
> >
> > Any pointers on how I() is processed internally are greatly appreciated.
>
> It isn't...
>
> > E <- function(x)x
> > x <- rnorm(10)
> > y <- rnorm(10)
> > lm(y~x+E(x^2))
>
> Call:
> lm(formula = y ~ x + E(x^2))
>
> Coefficients:
> (Intercept)            x       E(x^2)
>      0.2757       0.1725      -0.3823
>
>
> The point is that special interpretation of operators never happens inside
> function calls. I() is just a convenient do-nothing function call.
>
> If you want to add special operators, one place to look is in the handling
> of specials for survival::coxph.
>
>
> >
> > Cheers
> > Joris
> >
> > --
> > Joris Meys
> > Statistical consultant
> >
> > Ghent University
> > Faculty of Bioscience Engineering
> > Department of Mathematical Modelling, Statistics and Bio-Informatics
> >
> > tel : +32 9 264 59 87
> > Joris.Meys at Ugent.be
> > -------------------------------
> > Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>
>
>
>
>
>
>
>
>


-- 
Joris Meys
Statistical consultant

Ghent University
Faculty of Bioscience Engineering
Department of Mathematical Modelling, Statistics and Bio-Informatics

tel : +32 9 264 59 87
Joris.Meys at Ugent.be
-------------------------------
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php

	[[alternative HTML version deleted]]



[Rd] How I() works in a formula
Joris Meys