On 24-Jan-10 00:27:37, Jim Lemon wrote: > On 01/24/2010 11:11 AM, anna wrote: >> >> Here is the last code that I wrote but it would give me the >> same problem: >> I have the matrix mat with n columns mat.1, mat.2 ...mat.n >> >> #To be able to use lapply I convert it to a data.frame: >> mat<- data.frame(mat) >> >> lapply(mat, function, argument of function) >> >> It works but I still get for all elements the function applied >> for the last element. The elements of my results are all the >> same I don't understand I did exactly as shown on this website: >> http://www.ats.ucla.edu/stat/r/library/advanced_function_r.htm#lapply > > Hi anna, > If you could post your matrix "mat" (or something else that > produces the problem you describe if "mat" is private or too big) > and the commands you used, someone will probably figure out what > is going wrong. > > Jim
I agree with Jim's comments. It may help to formulate your reply to considet the following simple case of applying a function "on each column of a matrix": X2 <- function(x){ x^2 } M <- matrix(c(1,2,3,4,5,6,7,8,9),nrow=3) M # [,1] [,2] [,3] # [1,] 1 4 7 # [2,] 2 5 8 # [3,] 3 6 9 X2 <- function(x){ x^2 } apply(M,2,X2) # [,1] [,2] [,3] # [1,] 1 16 49 # [2,] 4 25 64 # [3,] 9 36 81 SX2 <- function(x){ sum(x^2) } apply(M,2,SX2) # [1] 14 77 194 Not ythe use of apply(), not lapply(); also that the result is not a matrix (with 1 row) but a vector (dimensionless): dim(apply(M,2,SX2)) # NULL If you want the result to be a 1-row vector, then you need to force this explicitly: N <- apply(M,2,SX2) # dim(N)<-c(1,3) N # [,1] [,2] [,3] # [1,] 14 77 194 or (in this case) more simply: rbind(NULL,apply(M,2,SX2)) # [,1] [,2] [,3] # [1,] 14 77 194 If that approach does not work with your matrix and your function, then there must be something special about one or the other! Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 24-Jan-10 Time: 00:49:12 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.