2013-03-19 61 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)