[R] Logical indexing not working

Sarah Goslee sarah.goslee at gmail.com
Fri Sep 27 20:49:46 CEST 2013


Your post demonstrates why we ask people to NOT post in HTML.
Attempting to decode it, I think the problem might be

birds==c(1,23,24,29)

Look at this:

birds <- c(2, 4, 1, 23, 8, 24)
birds <- data.frame(birds)
birds[birds[,1] == c(1,23,24,29),]

And compare
birds[birds[,1] %in% c(1,23,24,29),]

You might also benefit from reading ?subset and the Introduction to R
that came with your installation.

Sarah

On Fri, Sep 27, 2013 at 2:20 PM, Mariki Zietsman
<morgandetoi at hotmail.com> wrote:
> I have a data frame frugivore.abundance.S1 where some columns are factors and others are numbers.For example these are my independent variables and "density" is my dependent variable. census<-c(1:70)sites<-c(1:5)birds<-c(1:45)
>
> I want to select the data where sites is 1 and birds are 1,23,24 or 29
> So I write:fa1<-frugivore.abundance.S1attach(fa1)(abund.frug.RN1<-fa1[sites==1 & birds==c(1,23,24,29),])
> This code doesn't print all the data it should for some reason. It seems to not print rows where "density" has the same value as another row with the same criteria.
> i.e. if in the original data we have the following then only rows 1 and 3 will be printed, not all of them:
> census   sites   birds   density1                 1         1         0.0032                 1         1         0.0033                 1         1         0.001
> Can anyone help me out with this please?
> RegardsMariki
>

-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list