> DEVS should equal 6 values the last being 620, like the data frame: > CANDS DEVS > > [1,] 100 120 > > [2,] 101 220 > > [3,] 102 320 > > [4,] 103 420 > > [5,] 104 520 > > [6,] 105 620 > > And yes, my first question is do i need a "if" statement at all as the which > command seems to do the same thing.
You don't - and you don't need which() either. R is pretty good at indexing things in very conveniant ways. I'll assume we have the data you gave as an example in a data.frame - I'll call 'df': # create example data df <- data.frame(cands=100:105, devs=c(120, 220, 320, 420, 520, 620)) threshold <- 400 # get all rows with devs above threshold df[df$devs>threshold, ] # alternative way giving the same result subset(df, devs>threshold) The above methods will work if devs and cands are separate vectors, too: # get two vectors of equal length cands <- df$cands devs <- df$devs cands[devs>threshold] # alternative subset(cands, devs>threshold) For details and more examples have a look at the "Introduction to R" - especially section 2.7 "Index vectors; selecting and modifying subsets of a data set". cu Philipp -- Dr. Philipp Pagel Lehrstuhl für Genomorientierte Bioinformatik Technische Universität München Wissenschaftszentrum Weihenstephan 85350 Freising, Germany http://mips.gsf.de/staff/pagel ______________________________________________ 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.