[R] Initializing vector and matrices

Steven Yen @tyen @end|ng |rom ntu@edu@tw
Wed Feb 28 10:37:54 CET 2024


OK. I initialize real large vector and matrix and then shrink them when 
I use them in the loop. The following lines worked. I'd glad to know of 
better approaches.

bsum<-rep(0,1000); bsum
vsum<-matrix(rep(0,1000000),nrow=1000); vsum
for (ind in 1:3) { mydata <- read.csv(paste0("midata", ind, ".csv"))
...
k<-length(ame.00$bame)
bsum<-bsum[1:k]+ame.00$bame
vsum<-vsum[1:k,1:k]+ame.00$vame
}

On 2/28/2024 4:56 PM, Steven Yen wrote:
> Is there as way to initialize a vector (matrix) with an unknown length 
> (dimension)? NULL does not seem to work. The lines below work with a 
> vector of length 4 and a matrix of 4 x 4. What if I do not know 
> initially the length/dimension of the vector/matrix?
>
> All I want is to add up (accumulate)  the vector and matrix as I go 
> through the loop.
>
> Or, are there other ways to accumulate such vectors and matrices?
>
> > x<-rep(0,4)  # this works but I like to leave the length open
> >  for (i in 1:3){
> +  x1<-1:4
> +  x<-x+x1
> + }
> > x
> [1]  3  6  9 12
>
> > y = 0*matrix(1:16, nrow = 4, ncol = 4); # this works but I like to 
> leave the dimension open
>      [,1] [,2] [,3] [,4]
> [1,]    0    0    0    0
> [2,]    0    0    0    0
> [3,]    0    0    0    0
> [4,]    0    0    0    0
> > for (i in 1:3){
> +   y1<-matrix(17:32, nrow = 4, ncol = 4)
> +   y<-y+y1
> + }
> > y
>      [,1] [,2] [,3] [,4]
> [1,]   51   63   75   87
> [2,]   54   66   78   90
> [3,]   57   69   81   93
> [4,]   60   72   84   96
> >
>
>



More information about the R-help mailing list