Hi, I got an error message with: vlist <- apply(mm, list)
Error in match.fun(FUN) : argument "FUN" is missing, with no default #assuming that vlist <- apply(mm,2,list) mapply("%*%",mlist,vlist[1:2],SIMPLIFY=FALSE) #[[1]] # [,1] #[1,] 19 #[2,] 22 #[3,] 25 #[4,] 28 # #[[2]] # [,1] #[1,] 67 #[2,] 74 #[3,] 81 #[4,] 88 A.K. ----- Original Message ----- From: David Romano <drom...@stanford.edu> To: r-help@r-project.org Cc: Sent: Wednesday, February 6, 2013 12:50 AM Subject: [R] how to "multiply" list of matrices by list of vectors Hi everyone, I'd like to be able to apply lda to each 2D matrix slice of a 3D array, and then use the scalings to obtain the corresponding lda scores. I can use 'apply' to get a list of the lda output for each 2D slice, and can create a list of the resulting scalings, but I'm not sure how to multiply them in a vectorized way. Here's how I made a list of 2D matrices (suggestion on improving this would be welcome, too!): > aa <- array(1:24,c(4,2,3)) > mlist <- apply(aa,2,list) > mlist <- lapply(mlist, unlist) > mlist <- lapply(mlist, function(x) matrix(x,4,2)) and here's how I made a list of vectors: > mm <- matrix(1:6,2,3) > vlist <- apply(mm, list) > vlist <- lapply(vlist, unlist) Now I'd like to make the list whose i-th element is mlist[[i]]%*%vlist[[i]] without having to loop through the indices. Any help would be appreciated! Thanks, David [[alternative HTML version deleted]] ______________________________________________ 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. ______________________________________________ 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.