Dear Daisy, You are making things too complicated. There is no need for a loop and a nested if structure.
areaKM <- 7500 dat <- data.frame( x = 1:30, y = 31:60, cellvalue = c(5, 6 , 7, rep(10, 10), rep(20, 17)) )#fake if(areaKM > 15000){ treshold <- 30 } else { treshold <- 5 } n.cells <- table(dat$cellvalue) names(n.cells)[n.cells >= treshold] Best regards, ir. Thierry Onkelinx Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance Kliniekstraat 25 1070 Anderlecht Belgium To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote is not data. ~ Roger Brinner The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data. ~ John Tukey 2015-02-23 4:35 GMT+01:00 Daisy Englert Duursma <daisy.duur...@gmail.com>: > The corrected version is below. I found an error. > > > areaKM<-7500 #test for 7500 and 30000 > > > dat<-data.frame(x=1:30,y=31:60,cellvalue=c(5,6,7,rep(10,10),rep(20,17)))#fake > data > cells<-unique(as.numeric(dat$cellvalue))#find unique cellvalues > pres100km <- list() #empty list > > for (ii in 1:length(cells)){ #make loop to find 100km cells with at least > 30% of 10km cells being within the alpha hull, > #or if area of alpha hull less that 15000km2 keep all 100km2 cells where > points fall > subdat<-subset(dat,cellvalue ==cells[ii]) > if (areaKM >= 15000) { > if (nrow(subdat) < 30) { > next > } else { > pres100km[[ii]]<-cells[ii] #100kmcells >= 30% coverage of 10kmcells > } > } else { > if(nrow(subdat) < 5) { > next > } else { > pres100km[[ii]]<-cells[ii] #more than 5 obs > } > } > } > > > > On Mon, Feb 23, 2015 at 1:54 PM, Daisy Englert Duursma < > daisy.duur...@gmail.com> wrote: > > > Hello, > > I need to make a double clause in an if else/ next statement. I wrote a > > single one fine but I could not make it work for two statements > statements. > > > > Please see the following example: > > > > > > #Goals > > #1)if size of area is greater than 15000 test that there are a minimum > > of nrow() = 30, > > #write those with at least 30 values to list > > #2) if less than 15000, write those with >= 5 rows > > > > # in the following example I should have a list where one has a value of > > 10 and the other 20. > > > > > > areaKM <- 7500 #test for 7500 and 30000, at 30000 should have empty list > > > dat<-data.frame(x=1:30,y=31:60,cellvalue=c(5,6,7,rep(10,10),rep(20,17)))#fake > > data > > cells<-unique(as.numeric(dat$cellvalue))#find unique cellvalues > > pres100km <- list() #empty list > > > > #make loop to find dat$cellsvalue with at least 30 rows or if areaKM is > > less than15000 keep cellvalues for those with more than 5 rows. > > for (ii in 1:length(cells)){ > > subdat<-subset(dat,cellvalue ==cells[ii]) > > if (areaKM >- 15000) { > > if (nrow(subdat) < 30) { > > next > > } else { > > pres100km[[ii]]<-cells[ii] #100kmcells >= 30% coverage of 10kmcells > > } > > } else { > > if (nrow(subddat) < 5) { > > next > > } else { > > pres100km[[ii]]<-cells[ii] #100kmcells >= 50% coverage of 10kmcells > > } > > } > > } > > > > > > > > > > > > > > > > -- > > Daisy Englert Duursma > > Department of Biological Sciences > > Room W19F 135 > > Macquarie University, North Ryde, NSW 2109 > > Australia > > > > Tel +61 2 9850 1302 > > > > > > > > > -- > Daisy Englert Duursma > Department of Biological Sciences > Room W19F 135 > Macquarie University, North Ryde, NSW 2109 > Australia > > Tel +61 2 9850 1302 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.