From jwiley.psych at gmail.com  Fri May 25 06:52:07 2012
From: jwiley.psych at gmail.com (Joshua Wiley)
Date: Thu, 24 May 2012 21:52:07 -0700
Subject: [Rd] columnames changes behaviour of formula
In-Reply-To: <CANz9Z_+A8xJNdLHhh=1qN_QXAvhqy00s6cSPq+Knog-YSbd-EQ@mail.gmail.com>
References: <CAHHjBM7u86wbiuO-uBje8si5NiEbj=WzktCK9MmtFEthaS374g@mail.gmail.com>
	<CANz9Z_+A8xJNdLHhh=1qN_QXAvhqy00s6cSPq+Knog-YSbd-EQ@mail.gmail.com>
Message-ID: <CANz9Z_JMt6JF_0LNQGbbuaSCB-ocWVvDpB36U6Za+2zTbAJsWg@mail.gmail.com>

P.S. It really is sloppy code to mix variables from the global
environment with those inside a data frame. I.e.:

coef(lm(d ~ -1 + (.)^2, data = x))

the only time I think it makes sense to have different objects for the
outcome and predictors are when for speed purposes, you are using a
low level function, such as lm.fit or fastLmPure from the RcppEigen
package.


On Thu, May 24, 2012 at 9:46 PM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
> Hi Robin,
>
> Seems like the intended behavior to me. ?From the docs:
> "There are two special interpretations of '.' in a formula. ?The usual
> one is in the context of a 'data' argument of model fitting functions
> and means 'all columns not otherwise in the formula' "
>
> d is in the formula so the only column not in the formula is nd. ?the
> (.)^2 asks for all two way interactions, but with only one variable,
> there are none.
>
> What were you expecting?
>
> Josh
>
> On Thu, May 24, 2012 at 9:25 PM, robin hankin <hankin.robin at gmail.com> wrote:
>> Hello. precompiled R-2.15.0, svn58871, macosx 10.7.4.
>>
>>
>> I have discovered that defining column names of a dataframe can alter the
>> behaviour of lm():
>>
>>
>> d <- c(4,7,6,4)
>> x <- data.frame(cbind(0:3,5:2))
>> coef(lm(d~ -1 + (.)^2,data=x))
>> ? X1 ? ?X2 X1:X2
>> -1.77 ?0.83 ?1.25
>> R>
>> R>
>>
>>
>> OK, so far so good. ?But change the column names of 'x' and the behaviour
>> changes:
>>
>>
>> colnames(x) <- c("d","nd") ? # 'd' == 'death' and 'nd' == 'no death'
>> coef(lm(d~ -1 + (.)^2,data=x))
>> ? ? ? nd
>> 0.2962963
>>
>>
>>
>> I am not sure if this is consistent with the special meaning of '.'
>> described under ?formula.
>>
>> Is this the intended behaviour?
>>
>>
>> --
>> Robin Hankin
>> Uncertainty Analyst
>> hankin.robin at gmail.com
>>
>> ? ? ? ?[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
>
> --
> Joshua Wiley
> Ph.D. Student, Health Psychology
> Programmer Analyst II, Statistical Consulting Group
> University of California, Los Angeles
> https://joshuawiley.com/



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
Programmer Analyst II, Statistical Consulting Group
University of California, Los Angeles
https://joshuawiley.com/



[Rd] columnames changes behaviour of formula
Joshua Wiley