[R] Help with operation on list of matrices
Petr Savicky
savicky at cs.cas.cz
Thu Mar 15 08:38:40 CET 2012
On Wed, Mar 14, 2012 at 09:10:49PM -0400, Axel Urbiz wrote:
> I'll appreciate your help on this. I have values stored in a list as in
> "mylist" below. I need to sum the values over all elements of the list
> aggregated by the names of the matrices.
> mylist <- list(matrix(c(0.2, 0.4), 1, 2, dimnames = list(NULL, c("1",
> "2"))),
> matrix(c(0.1, 0.5), 1, 2, dimnames = list(NULL, c("1",
> "3"))),
> matrix(c(0.3, 0.7), 1, 2, dimnames = list(NULL, c("2",
> "5"))))
> In this example, I'd like to get a single matix with the following values:
>
> varname value
> 1 0.3 (i.e., 0.2 + 0.1)
> 2 0.7 (i.e., 0.4 + 0.3)
> 3 0.5 (i.e., 0.5)
> 5 0.7 (i.e., 0.7)
Hi.
If all the matrices have only one row as in the
example above, try the following.
values <- unlist(mylist)
cnames <- unlist(lapply(mylist, FUN=colnames))
tapply(values, cnames, FUN=sum)
1 2 3 5
0.3 0.7 0.5 0.7
Hope this helps.
Petr Savicky.
More information about the R-help
mailing list