applying cbind (or any function) across all components in a list
On May 24, 2012, at 12:49 PM, Hans Thompson wrote:
I'm confused why I haven't made clear what I am asking for help with. I have two different lists with two (or many) components, [[1]] and [[2]]. One of the list has components with dim=c(2,3) and the other has dim=c(2,2). I want to create a new list with components dim=c(2,4) by binding together the averages of the columns using
cbind((l1[[1]][,1]+l2[[1]][,1])/2, (l1[[1]][,2]+l2[[1]][,1])/2, (l1[[1]][,2]+l2[[1]][,2])/2, (l1[[1]][,3]+l2[[1]][,2])/2 )
which should put out:
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 2 3 4 5
my problem is finding out how I can apply this function to all the
components within the list in the same function.
Well, it's not clear what "function" you want applied to "what". In
fact, it's even less clear in this posting than it was in your first
one (since you assume, incorrectly, that we are looking at this on
Nabble. Readers of this list expect you to include context.) I could
not figure out in your first posting how we should be considering the
fourth expression
{(l1[[1]][,3]+l2[[1]][,2])/2 }
... to be an "average" of anything since its indices do not match?
Perhaps equivalently, why should a 2 x 3 structure merged <somehow> to
a 2 x 2 structure yield a 2 x 4 structure?
David Winsemius, MD West Hartford, CT