[R] Randomly remove condition-selected rows from a matrix
Guillaume Chapron
carnivorescience at gmail.com
Wed Dec 31 18:44:54 CET 2008
> 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.
More information about the R-help
mailing list