Hello,

I'm currently trying to convert a slow and ugly script I made, so that it's
faster and can be computed on a computer grid with the multicore package.
My problem is that I don't see how to turn some loops into an "apply-able"
function.

Here's an example of my loops :
I got a list of dataframes (or matrices like here), and I need to browse
each cell of those many dataframes to compute a mean (or standard deviation
like here).

Here's a example script :

a <- b <- c <- d <- result <- matrix(nrow=3, ncol=3)
a[] <- sample.int(n=100,size=9,replace=TRUE)
b[] <- sample.int(n=100,size=9,replace=TRUE)
c[] <- sample.int(n=100,size=9,replace=TRUE)
d[] <- sample.int(n=100,size=9,replace=TRUE)
result[] <- NA
mylist <- list(a,b,c,d)

for (row in 1:3)
{
  for (col in 1:3)
  {
    tmpList <- log(mylist[[1]][row, col])
    for (listitem in 2:4)
    {
      tmpList <- c(tmpList, log(mylist[[listitem]][row, col]))
    }
    result[row, col] <- sd(tmpList)
  }
}

Considering I have to look at the same cell in each dataframe, I don't
understand how I could turn this into a function, considering I need the
row and column number to iterate.

I succeeded improving my script duration a lot, but such loops are really
long to run, considering that my lists contains like 100 dataframes, who
all contains thousands of values.

Any help would be really appreciated

Thanks in advance,

Robin

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

Reply via email to