[R-sig-eco] Selecting levels from a list
tyler
tyler.smith at mail.mcgill.ca
Wed Dec 3 19:13:20 CET 2008
Jeffrey_Warren at fws.gov writes:
> I'm trying to select multiple levels from a list of factors but have not
> been able to. Here is the list:
>
>
> And the code I've tried so far:
>
> lesc.ddl$p$time==0.75 | 1.75 | 2.75 #returns all 'TRUE' values
>
> lesc.ddl$p$time==c(0.75 | 1.75 | 2.75) #returns all 'FALSE' values
>
Owen already gave you the solution. FYI, Your code didn't work because R
didn't see what you thought it saw.
lesc.ddl$p$time==0.75 | 1.75 | 2.75
gets interpreted as
(lesc.ddl$p$time==0.75) | 1.75 | 2.75
The first part is true when time == 0.75. The second part, 1.75, is
always true (i.e., not zero or false), so the expression as a whole is
always true. Similarly,
lesc.ddl$p$time==c(0.75 | 1.75 | 2.75)
gets interpreted as
lesc.ddl$p$time==TRUE
which is FALSE for any value of lesc.ddl$p$time other than 1.
What you could have used was:
lesc.ddl$p$time==0.75 | lesc.ddl$p$time==1.75 | lesc.ddl$p$time==2.75
This is awkward, which makes the %in% function that Owen recommended
easier to deal with.
Cheers,
Tyler
--
Who is your computer working for?
http://www.defectivebydesign.org/faq
More information about the R-sig-ecology
mailing list