Hi every one. I'm learning how to use sapply (and other function of this family). Here's what I'm trying to do. I have a vector of lets say 5 elements. I also have a matrix of nX5. I would like to know how many element by column are inferior to each element of my vector. On this example: v = c(1:5) M = matrix(3,2,5) I would like to have a vector at the end which give me 0 0 0 2 2 because in my matrix M, there's 2 row at my columns 4 and 5 that have number < than values 4 and 5 respectively. This is pretty simple to do with a loop, but I would like to know how to do it with sapply. I hope I have been clear enough. Tx in advance. Phil -- View this message in context: http://r.789695.n4.nabble.com/sapply-help-tp4355092p4355092.html Sent from the R help mailing list archive at Nabble.com.
3-02-2012, 08:37 (-0800); Filoche escriu:> Hi every one. > > I'm learning how to use sapply (and other function of this family). > > Here's what I'm trying to do. > > I have a vector of lets say 5 elements. I also have a matrix of nX5. I would > like to know how many element by column are inferior to each element of my > vector. > > On this example: > v = c(1:5) > M = matrix(3,2,5) > > I would like to have a vector at the end which give me > > 0 0 0 2 2 >This does that:> sapply(1:5, function(i) sum(M[,i] < v[i]))[1] 0 0 0 2 2 Basically, it's like a loop where at each iteration the function is called with one element of the vector 1:5 as argument, so what this really does is sum(M[,1] < v[1])) sum(M[,2] < v[2])) ... and then the results are put all together in a vector. -- Cheers, Ernest
Thank you sire. You explained it very well. This give ma a good point to start using sapply more frequently. Cordially, Phil -- View this message in context: http://r.789695.n4.nabble.com/sapply-help-tp4355092p4355376.html Sent from the R help mailing list archive at Nabble.com.