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
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.
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]]