Or here's a simpler solution than you've been presented: # this is easier without the site column sp1 <- speciesTime1[,-1] sp2 <- speciesTime2[,-1]
# will work for abundance as well as presence, as long as # the minimum abundance is not less than 1 imm <- matrix(0, nrow=nrow(sp1), ncol=ncol(sp1)) imm[sp1 < 1 & sp2 > 0] <- sp2[sp1 < 1 & sp2 > 0] colnames(imm) <- colnames(sp1) imm <- data.frame(imm, sum=rowSums(imm)) # Exti is calculated the same way. Sarah On Thu, May 30, 2013 at 5:28 PM, Kristi Glover <kristi.glo...@hotmail.com> wrote: > Hi R -Users > I am sorry for bothering you. I was wondering what script can work to > calculate an immigration and extinction from two tables (time 1 and time 2). > I could easily calculate them in the Excel for small data set, but I have > very big data set. so that I was wondering to use R for this calculation. But > I could not figure it out to write these logical function in R. Would you > provide me some hints? > > For example, I have these two tables > speciesTime1<-structure(list(site = 1:4, sp1 = c(0L, 1L, 1L, 0L), sp2 = c(0L, > 1L, 1L, 0L), sp3 = c(1L, 0L, 1L, 0L)), .Names = c("site", "sp1", > "sp2", "sp3"), class = "data.frame", row.names = c(NA, -4L)) > > speciesTime2<-structure(list(site = 1:4, sp1 = c(1L, 0L, 1L, 1L), sp2 = c(0L, > 1L, 1L, 1L), sp3 = c(1L, 1L, 0L, 1L)), .Names = c("site", "sp1", > "sp2", "sp3"), class = "data.frame", row.names = c(NA, -4L)) > > >From these two tables: I wanted to make the following two tables (Imm and > >Exti] > [Imm means number of "sp" present in speciesTime2, but not in speciesTime1] > imm<-structure(list(sp1 = c(1L, 0L, 0L, 1L), sp2 = c(0L, 0L, 0L, 1L > ), sp3 = c(0L, 1L, 0L, 1L), sum = c(1L, 1L, 0L, 3L)), .Names = c("sp1", > "sp2", "sp3", "sum"), class = "data.frame", row.names = c(NA, > -4L)) > > [Exti=number of "sp" absent in speciesTime2, but present in speciesTime1] > > Exti<-structure(list(sp1 = c(0L, 1L, 0L, 0L), sp2 = c(0L, 0L, 0L, 0L > ), sp3 = c(0L, 0L, 1L, 0L), sum = c(0L, 1L, 1L, 0L)), .Names = c("sp1", > "sp2", "sp3", "sum"), class = "data.frame", row.names = c(NA, > -4L)) > Thanks > KG > === > -- http://www.functionaldiversity.org ______________________________________________ R-help@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.