On Sep 16, 2012, at 3:41 AM, SirRon wrote: > Hello, > I'm working with a dataset that has 2 columns and 1000 entries. Column 1 has > either value 0 or 1, column 2 has values between 0 and 10. I would like to > count how often Column 1 has the value 1, while Column 2 has a value greater > 5. > > This is my attempt, which works but doesn't seem to be very efficient, > especially when testing different values or columns. > > count=0 > for (i in 1:1000) { if(dataset[i,2]>5 && ind[i,1]==1) { count=count+1}} > > I'm looking for a more efficient/elegant way to do this! >
I see others have given you a solution using the vectorized sum function. I would have reached for 'table' and done it thusly: table( one=dataset[,1], GT5=dataset[ , 2] > 5 ) -- David Winsemius, MD Alameda, CA, USA ______________________________________________ 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.