[Rd] How I() works in a formula
peter dalgaard
pdalgd at gmail.com
Fri Oct 3 15:02:31 CEST 2014
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
More information about the R-devel
mailing list