Hello,

If your matrix is in the order of 300x300, the problem of extracting all possible submatrices and applying a function will allways be a large one, but the use of ?combn may reduce it a bit if the order of rows/columns in the submatrices doesn't matter. It can reduce it from 300^4 = 8.1e+09 to 2.0e+09 submatrices, a factor of 4.
See the example below.

# Make up some data.
nr <- nc <- 10
x <- matrix(rnorm(nr*nc), nrow = nr)

cr <- combn(nr, 2)
cc <- combn(nc, 2)

fun <- function(rr, cc, xx, FUN) FUN(xx[rr, cc])

apply(cr, 2, function(i)
    apply(cc, 2, function(j)
        fun(cr[, i], cc[, j], x, sum)
    )
)


Note that this hides away the quartic nature of the algorithm.

Hope this helps,

Rui Barradas
Em 22-10-2012 18:10, CMB123 escreveu:
Hi all,

I'm working with a large data set (on the order of 300X300) and trying to
apply a function which compares the elements of all possible 2x2
submatrices. There are rc(r-1)(c-1) such submatrices, so obviously the naive
method of looping through the rows and columns is computationally unfeasible
for my data set:

   for(i in 1:(nrow(data)-1)) {
     for(j in (i+1):nrow(data)) {
       for (m in 1:(ncol(data)-1)) {
         for (n in (m+1):ncol(data)) {

I have tried using the outer and apply functions to vectorize the task, but
I can't seem to figure out the best method (or any method, for that matter)
to help with what I'm trying to do.

Any and all help is much appreciated! Thanks in advance,

C



--
View this message in context: 
http://r.789695.n4.nabble.com/Help-with-applying-a-function-to-all-possible-2x2-submatrices-tp4647048.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.

Reply via email to