2013-03-04 51 views
0

我有两个相同尺寸的二进制文件(栅格)。第一个文件叫做over,第二个文件是corr。我想在大于0.5时将over中的值替换为NA如何用文件2中的NA替换NA对应于文件1中的指定值?

  1. 阅读的第一个文件:

    conn <- file("C:\\corr.bin", "rb") 
    over <- readBin(conn, numeric(), size=4, n=1440*720, signed=TRUE) 
    y <- t(matrix((data=corr), ncol=720, nrow=1440))## binary 
    r1 <- raster(t(matrix((data=over), ncol=720, nrow=1440)))## raster 
    
  2. 读第二个文件:

    conne <- file("C:\\cor06.bin", "rb") 
    corr <- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE) 
    y1 <- t(matrix((data=corr), ncol=720, nrow=1440))## binary 
    r <- raster(t(matrix((data=corr), ncol=720, nrow=1440)))##raster 
    
  3. 将结果写:

    to.write = file(paste("/orcomplete.bin", sep=""), "wb") 
    writeBin(as.double(results), to.write, size = 4) 
    

回答

2

这是棘手,看看到底你想要什么,但什么:

over[corr > 0.5] = NA 

或一些更复杂:

over[corr < 0.2 | corr > 0.4] = NA 
+0

这很好:谢谢。如果我想要的范围是什么,不超过0.5,但是每当'0.2 < corr > 0.4'。我想把它分配给t,所以我可以写出结果,但't = over [corr> 0.4] = NA' 'summary(over) Min。第一曲。中位数均值3曲。最大。 NA's -1.0 -0.3 0.0 -0.1 0.2 0.4 947468' 'summary(t)' 模式NA的 逻辑1'。您能否将此添加到您的答案中 – Barry 2013-03-04 09:27:53

+0

您开始提出一个不同的问题。由于未来的读者无法关注正在发生的事情,所以这在Stackoverflow中是不被接受的。相反,只是一个新问题。 – csgillespie 2013-03-04 09:46:45