[R] unexpected subset select results?
David Winsemius
dwinsemius at comcast.net
Tue Aug 24 02:36:51 CEST 2010
On Aug 23, 2010, at 6:28 PM, David Winsemius wrote:
>
> On Aug 23, 2010, at 5:51 PM, ivo welch wrote:
>
>> quizz---what does this produce?
>>
>> d=data.frame( a=1:1000, b=2001:3000, z= 5001:6000 )
>> attach(d); c <- (a+b)>25; detach(d)
>> d= subset(d, TRUE, select=c( a, b, c ))
>>
>> yes, I know I have made a mistake, in that the code does not do
>> what I
>> presumably would have wanted. it does seem like unexpected behavior,
>> though, without an error. there probably is some reason why this
>> does
>> not ring an alarm bell...
>
> You have created a perfect example for why it is a bad idea to
> attach data.frames.
>
> ?attach # yes, I am yet again saying: "read the help page..."
>
> ... especially the 4th paragraph of the Details section.
I think it might helpful to consider the right way and the wrong way
to do the same assignment using with(), which is my choice as an
alternative to attache
Right;
d$c <- with(d, a+b >25) # note: using "c" as an object name is a
really confusing strategy
Wrong:
with(d, c <- a+b <25)
The wrong way is similar to what you might have thought would be
happening. The attach() operation created its own environment, but
that did not necessarily mean that all assignments would be creating
new columns inside "d".
>
> --
> David.
>
>
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list