I have a large matrix which is divided into several pieces, manipulated
individually, and saved into RData in disc. After each pieces are done with
operation, I load them into memory and use rbind to stack them back into matrix.
however, the rbind is only give me the last two pieces. The following code
illustrates the problem: 4 pieces of matrix (1000x1000) is created and stored in
RData; then load them back and rbind them. I would expect mat is of 4000*1000;
however, dim(mat) shows (2000 1000).
Where is my code wrong?
Thanks
## define a pathData directory
pathData='C:'\\data';
points=1000;
data.pfx='rnorm';
rname=paste('row',1:points,sep='');
cname=paste('col',1:points,sep='');
for (i in 1:4) {
x=rnorm(points^2);
mat=matrix(data=x,nrow=points,ncol=points);
rname=paste('row',(points*(i-1)+1):(points*i),sep='');
rownames(mat)=rname;
colnames(mat)=cname;
file.rdata=paste(pathData,'\\',data.pfx,'_',i,'.RData',
sep='');
save(list='mat',file=file.rdata,compress=T);
}
mat=NULL;
for (i in 1:4) {
file.rdata=paste(pathData,'\\',data.pfx,'_',i,'.RData',
sep='');
x=load(file.rdata);
mat=rbind(mat,get(x));
}
### code end here
> dim(mat)
[1] 2000 1000
[[alternative HTML version deleted]]