为什么R不能识别它们应该是的列和行?

时间:2012-05-24 15:53:15

标签: r

下面给出的代码是提取一个区域的值并将其写入文本文件(目录中有365个二进制文件)。 我面临的问题是我的所有文件都是二进制文件,大小为360行和720列。 我在这一行指定了:

file2 <- matrix(data=file,ncol=720,nrow=360) 

但是我收到了一个错误:

  

均值错误(file2 [X,Y],na.rm = TRUE):下标超出范围。

然后我重写了以上一行:

file2 <- matrix(data=file,ncol=360,nrow=720)

我把ncol = 360和nrows = 720这不对。但这有效,我没有得到任何错误。但是,结果不正确。

X <- c(364:369) ;   Y <- c(82:92) #####   for sellected region
extract <- vector()
dir1 <- list.files("C:\\Users\\Climate_Rad_f_GAMMA_%d.img", full.names = TRUE)
listfile<-dir1()
for (i in c(1:365))
{
    conne <-  file(listfile[i], "rb")
    file <-  readBin(conne, double(), size=4,  n=720*360, signed=T)
    file2 <-  matrix(data=file,ncol=720,nrow=360)  
extract[i] <- mean(file2[X,Y],na.rm=TRUE)
    close(conne)
    write.table(extract,"C:\\Users\\sam.txt")
}

1 个答案:

答案 0 :(得分:0)

在此代码中:

mean(file2[X,Y],na.rm=TRUE)

您正在选择行X和列Y.您只有360行。你可能会想要这个:

mean(file2[Y,X],na.rm=TRUE)