I will try to explain my problem. There are 600 (global map)files (1440 sample * 720 lines)in two directories dir1 and dir2, which have the same format ,byte,extend,etc. I computed the `bias` between two datasets using the function and code given below as follows:

Function:

        bias <-function(pred,obs,na.rm=TRUE){
                     mean((pred - obs), na.rm = na.rm)}

read files:

         dir1 <- list.files("/donnees/notghi", "*.img", full.names = TRUE)
         dir2 <- list.files("/donnees/baieSt", "*.img", full.names = TRUE)

for each x,y location, I would read it into a multi-dimensional array with dimensions:

          file_tot<-array(dim=c(1440,720,600,2))

Apply the code:

      for(i in 1:length(dir1)){
file_tot[,,i,1] <- readBin(dir1[i], double(), size = 4 ,n = 1440* 720 , signed = T) file_tot[,,i,2] <- readBin(dir2[i], double(), size = 4 ,n = 1440 * 720, signed = T)
     }
calculate the `bias`:

        result<-apply(file_tot,c(1,2),function(x){bias(x[,1],x[,2])})
This worked correctly and no problem with that.

now I want to modify the function and add third part(mod in the function which should come from different data (dir3) other than dir1 and dir2):
 function:

       err<-function(pred,obs,mod,na.rm=TRUE){
            sqrt(mean(((pred-obs)*(pred-mod)), na.rm = na.rm))}

read the files(note that now dir3 is added and files have the same attributes):

        dir1 <- list.files("/donnees/notghi", "*.img", full.names = TRUE)
        dir2 <- list.files("/donnees/baieSt", "*.img", full.names = TRUE)
        dir3 <- list.files("/donnees/modt", "*.img", full.names = TRUE)
 code:
I tried to do this,I put `3` instead of `2`:

        file_tot<-array(dim=c(1440,720,600,3))## worked well

  and then change this line accordingly:
from:

       result<-apply(file_tot,c(1,2),function(x){bias(x[,1],x[,2])})

to :

      result<-apply(file_tot,c(1,3),function(x){err(x[,1],x[,2],x[,3])})
         ## not 3 instead of 2 and I added x[,3]
              Is that right?

This worked without errors but I checked the results and they were crap.

--
Amen Alyaari, UPMC
PhD student
Unit of Functional Ecology&  Environmental Physics [EPHYSE]
National Institute of Agricultural Research [INRA].
71, Avenue Edouard Bourlaux
33140 Villenave d'Ornon
Téléphone : +33(0) 5 57 12 24 27
Fax : +33 (0)5 57 12 24 20
FRANCE

______________________________________________
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