2013-03-19 69 views
2

我有兩個二進制文件(1440 * 720)具有相同的尺寸:我想根據第二個文件值(間隔)取我的第一個文件的平均值,此文件的值範圍從1到7.無論何時第二個文件中的值在0-1之間的範圍內,計算第一個文件中相應的平均值並返回結果,與2-3,3-4,5-6,7-8.做同樣的事情沒有數據值是指定爲NA。如何在使用cut()時處理NA?

1讀取的第一個文件:

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

2 - 讀第二個文件:

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)) 

但我得到的NA,這意味着,如果在NA的一個像素,將返回平均值爲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

使用'mean'的'na.rm'參數? – Roland 2013-03-19 17:06:13

+0

'aggregate(corr,list(cusBREAK),mean,na.rm = TRUE)'possible。我無法測試您的代碼是否工作,因爲您沒有提供任何示例數據。 – Roland 2013-03-19 17:11:08

回答

0

好像你需要告訴mean功能省略NA值:

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