Sorry, forgot the last line in the op code. write.table(extract, ...) is called every time through the loop, not just one time after it. Put it after closing '}'.
Rui Barradas Rui Barradas wrote > > Hello, > > There are several things with your code, most of which are not errors. > > 1. X<-c(364:369) ; Y<-c(82:92 and later c(1:365) > Expressions of the form m:n are integer sequences, the c() is not needed. > > 2. extract<-vector() > First you create the vector, then keep extending it throughout the loop. > This is much slower. > If you know the final length (and type), create it like this: > extract <- numeric(365) # or double(365) > > 3. 'dir1' is not used. > > 4. Now the readBin instruction: > 4.1. 'file' is the name of a function, use, say, 'file1' instead. > 4.2. Option 'signed' defaults to TRUE but it's only valid for integer > types. > > 5. And, maybe this is the problem, in R, doubles are 8 bytes, not 4. Get > rid of option 'size', like the help page says, > > "If size is specified and not the natural size of the object, each element > of the vector is coerced to an appropriate type before being written or as > it is read." > > You are NOT reading doubles. > > As for the rest, it seems ok to me. (Keep option 'n' in readBin.) > > Hope this helps, > > Rui Barradas > > Jonsson wrote >> >> Dear All, >> The code given bellow is to extract values of one region and write that >> to a text file(there are 365 binary files in the directory). >> The problem which I am facing is that all my files are binary with size >> of 360 rows and 720 columns. >> I specified that in this line: >> file2<-matrix(data=file,ncol=720,nrow=360) but I got an error : Error in >> mean(file2[X, Y], na.rm = TRUE) : subscript out of bounds. >> and then I rewrote the above line as >> :file2<-matrix(data=file,ncol=360,nrow=720.I put ncol=360 and nrows =720 >> which is not right.But that worked and I didn't get any error.however,the >> results were not correct. >> Any help please >> X<-c(364:369) ; Y<-c(82:92) ##### for sellected region >> extract<-vector() >> dir1<- list.files("C:\\Users\\aalyaari\\Desktop\\New folder >> (10)\\Climate_Rad_f_GAMMA_%d.img", full.names = TRUE) >> listfile<-dir() >> 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\\aalyaari\\Desktop\\New folder >> (10)\\sam.txt")} >> > -- View this message in context: http://r.789695.n4.nabble.com/R-does-not-recognise-columns-and-rows-as-they-are-supposed-to-be-tp4631217p4631229.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.