[R] function on columns of two arrays

Law, Jason Jason.Law at portlandoregon.gov
Tue Aug 20 18:54:25 CEST 2013


library(abind)
library(plyr)
c <- abind(a,b, along = 4) 
results <- alply(c, c(2,3), function(x) lm(x[,2] ~ x[,1]))
ldply(results, function(x) summary(x)$coef)

Jason Law
Statistician
City of Portland
Bureau of Environmental Services
Water Pollution Control Laboratory
6543 N Burlington Avenue
Portland, OR 97203-5452

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Folkes, Michael
Sent: Tuesday, August 20, 2013 12:34 AM
To: r-help at r-project.org
Subject: [R] function on columns of two arrays

I've spent a bit too long searching the help history and attempting to apply some logic to the following:
I have two 3D arrays each with same dim. I wish to run lm on the respective columns of each array, preferably without loops.
We often hear chatter that sometimes apply() won't be faster "just use a for loop" I'd like to test this one...
I just can't seem to wrap my brain around use of mapply on this task and am more surprised that I'm not finding a solution out there already.


a <- array(1:60,dim=5:3)
b <- a*3+10
lm(b[,1,1]~a[,1,1])
#and repeat for all rows and columns...

thanks in advance.
Michael

_______________________________________________________
Michael Folkes
Salmon Stock Assessment
Canadian Dept. of Fisheries & Oceans     
Pacific Biological Station

	[[alternative HTML version deleted]]

______________________________________________
R-help at 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.



More information about the R-help mailing list