Randomly remove condition-selected rows from a matrix
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)
Choose all except the selected rows from the original:
m[- ... , ]
-s
On Tue, Dec 30, 2008 at 9:59 AM, Guillaume Chapron
<carnivorescience at gmail.com> wrote:
m <- matrix(1:20, nrow = 10, ncol = 2)
[,1] [,2]
[1,] 1 11
[2,] 2 12
[3,] 3 13
[4,] 4 14
[5,] 5 15
[6,] 6 16
[7,] 7 17
[8,] 8 18
[9,] 9 19
[10,] 10 20
Then, I want to remove randomly 2 rows among the ones where m[,1]<8 and
m[,2]>12