I believe this does what you want:

m[-sample(which(m[,1]<8 & m[,2]>12),2),]

Analysis:

Get a boolean vector of rows fitting criteria:
   m[,1]<8 & m[,2]>12

What are their indexes?
   which(...)

Choose two among those indexes:
    sample(...,2)

Thanks, but this does not seem to always work.

Supposing I sample only one row among the ones matching my criteria. Then consider the case where there is just one row matching this criteria. Sure, there is no need to sample, but the instruction would still be executed. Then if this row index is 15, my instruction becomes which(15,1), and this can gives me any row from 1 to 15, which is not correct. I have to make a condition in case there is only one row matching the criteria.

______________________________________________
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.

Reply via email to