[R] Create a matrix with increment and element with zero subscript

David Winsemius dwinsemius at comcast.net
Tue Oct 25 02:02:51 CEST 2011


On Oct 24, 2011, at 7:23 PM, Md Desa, Zairul Nor Deana Binti wrote:

> Hello,
> Does anyone knows how to deal with zero subscript in R. I have this  
> code:
> for (i in 1:nitems){
> +             for (j in 1:ncat-1)  {
> +          draw<-matrix(rnorm(nitems*(ncat-1),seed1,seed2),nitems, 
> (ncat-1))
> +          d<-( sigma_d*draw ) + mu_d
> +         draw<-matrix(rtnorm((nitems*(ncat-1)),mean = seed1, sd =  
> seed2, lower = .1, upper = 1.5),nitems,(ncat-1))
> +           d<-(sigma_d*draw) + mu_d
> +           write.matrix(cbind(b.i0,d), file = "F:/KU/MIRT group/ 
> MIMIC-DIF/R/cpprcode/b0d.dat", sep = "  ")
> +             b[i,j]<-b[i,j-1]+d[i,j]
> +                }
> +             }
>
> The error as following:
>
> Error in b[i, j ] <- b[i, j - 1] + d[i, j] :
>  replacement has length zero
>
> I would like to to have a matrix where the first column takes from  
> initial pre-assigned value (b[i,0]+d1), the second column is  
> additive from the first column and a constant d2 that is (b(i,1)=b(i, 
> 0)+d1+d2, and so forth. Is there any way that R can read subscript  
> of zero?

I don't. (I seem to remember the Matrix package allows such  
shenanigans.)

Why don't you instead augment b[,] with a top column of initial  
values, using rbind() and then iterate from 2:(ncat-2). (Do note the  
parentheses and if you do not know why, then consult ?Syntax for  
operatr precendence.)

-- 
David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list