我有两个二进制文件(1440 * 720)尺寸相同:我想根据第二个文件值(间隔)取第一个文件的平均值,该文件的值范围为1到7。每当第二个文件中的值介于0-1之间时,计算第一个文件中的相应平均值并返回结果,用2-3,3-4,5-6,7-8.no数据值做同样的事情被指定为NA。
1-阅读第一个文件:
conne <- file("C:\\corr.bin","rb")
corr <- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE)
#please assume a matrix of 720*1440 dimnsions
2-阅读第二个文件:
conne1 <- file("C:\\use.bin","rb")
cus <- readBin(conne1, numeric(), size=4, n=1440*720, signed=TRUE)
#please assume a matrix of 720*1440 dimnsions
计算:
cusBREAK <- cut(cus,1:8))
aggregate(corr, list(cusBREAK), mean, na.rm=TRUE)
这很好但我还需要知道所用像素的数量以及总像素数的百分比。
Results
Group.1 x number of pixels percentage (out of the total number of pixcels)
1 (0,1] 0.5 ? ?
2 (1,2] 0.23 ? ?
3 (2,3] 0.65 ? ?
4 (3,4] 0.3 ? ?
5 (4,5] 0.36
答案 0 :(得分:3)
使您在aggregate中使用的功能返回多个值。例如:
aggregate(corr, list(cusBREAK), function(values){
c( "x" = mean(values),
"pixels" = length(values),
"percent" = length(values) / length(corr) * 100
)
}, na.rm=TRUE)