2013-03-19 4 views
2

J'ai deux fichiers binaires avec (1440 * 720) les mêmes dimensions: Je veux prendre la moyenne de mon premier fichier basé sur les valeurs du second fichier (intervalles), les valeurs de ce fichier vont de 1 à 7. Chaque fois les valeurs dans le deuxième fichier se situent entre 0 et 1, calculent la moyenne correspondante dans le premier fichier et retournent le résultat, faites la même chose avec les valeurs 2-3,3-4,5-6,7-8. affecté comme NA.Comment gérer NA avec cut()?

1 pour lire le premier fichier:

conne <- file("C:\\corr.bin","rb") 
    corr<- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE) 

2- pour lire le second fichier:

conne1<- file("C:\\use.bin","rb") 
    cus<- readBin(conne1, numeric(), size=4, n=1440*720, signed=TRUE) 

     cusBREAK <- cut(cus,10:80)) 
     (corrMEAN <- aggregate(corr, list(cusBREAK), mean)) 

Mais je suis NAs, cela signifie que s'il y a NA dans l'un des pixels, retournera la moyenne comme NA.

 (corrMEAN <- aggregate(corr, list(cusBREAK), mean)) 
     Group.1 x 
    1 (0,1] NaN 
    2 (1,2] NaN 
    3 (2,3] NaN 
    4 (3,4] NaN 
    5 (4,5] NaN 
+0

Utilisez le paramètre '' na.rm' de mean'? – Roland

+0

'aggregate (corr, liste (cusBREAK), moyenne, na.rm = TRUE)' éventuellement. Je ne peux pas tester si votre code fonctionne puisque vous ne fournissez aucun exemple de données. – Roland

Répondre

0

Il semble que vous devez dire la fonction mean d'omettre NA valeurs:

aggregate(corr, list(cusBREAK), mean, na.rm=TRUE)