Hi, You can also use sapply() sapply(split(t(a),1:ncol(a)),function(x) sum(diff(b)*(x[-1]+x[-length(x)]))/2) # 1 2 3 4 5 6 7 8 9 10 #99 279 459 639 819 999 1179 1359 1539 1719 A.K.
----- Original Message ----- From: Andras Farkas <motyoc...@yahoo.com> To: "r-help@r-project.org" <r-help@r-project.org> Cc: Sent: Saturday, September 8, 2012 3:45 PM Subject: [R] Apply a function to columns of a matrix Dear All, as a follow up to my previous e-mail (I think I am getting closer...): I am trying to apply the trapezoidal functions to a matric column by column. I have the following code: a <-matrix(c(1:100),ncol=10) b <-matrix(c(2,4,6,8,10,12,14,16,18,20)) apply(a,2,function(b,a) sum(diff(b)*(a[-1]+a[-length(a)]))/2) for some reason i get an error message: Error in FUN(newX[[, i], ...): argument "a" is missing with no default. Any ideas of why that may be happening? thanks, Andras [[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.