[R] subset
    R. Michael Weylandt 
    michael.weylandt at gmail.com
       
    Fri Jan 13 04:34:23 CET 2012
    
    
  
As Jorge noted, the fix is to use "%in%": a fuller explanation of why
`==` didn't work is that it implicitly used vector recycling: look at
with(data, id == c("a", "c"))
implicitly, this expands to id == c("a","c", "a", "c") to get the
lengths to match. Obviously only the first elements work here.
But when you had c("a", "d") it expanded to c("a","d", "a", "d") and
you get TRUE for the 1st and 4th slot. This, however, was just a lucky
coincidence. Had you used c("d", "a") there would have been no
matches.
Anyways, definitely use %in% but hopefully this clarifies things.
Michael
On Thu, Jan 12, 2012 at 9:50 PM, Jorge I Velez <jorgeivanvelez at gmail.com> wrote:
> Hi,
>
> Use %in% instead of ==.
>
> HTH,
> Jorge.-
>
>
> On Thu, Jan 12, 2012 at 9:36 PM, 孟欣 <> wrote:
>
>> Hi all
>> I have a question about "subset" function.
>>
>>
>> > dat
>>  id x1 x2  x3
>> 1  a  1 11 111
>> 2  b  2 22 222
>> 3  c  3 33 333
>> 4  d  4 44 444
>>
>>
>> > subset(dat,id==c("a","c"))
>>  id x1 x2  x3
>> 1  a  1 11 111
>>
>> > subset(dat,id==c("a","d"))
>>  id x1 x2  x3
>> 1  a  1 11 111
>> 4  d  4 44 444
>>
>>
>> >From the above, if I choose id=a,c, the result is wrong,but if I choose
>> id=a,d, the result is right.
>>
>>
>> What's the reason for it?
>>
>>
>>
>>
>> Many thanks!
>>
>>
>>
>>
>> My best
>>
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>>
>
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> 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.
>
    
    
More information about the R-help
mailing list