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

Md Desa, Zairul Nor Deana Binti zndeana at ku.edu
Wed Oct 26 04:10:46 CEST 2011


Thanks, all! 
I've tried changing the start and end of the loop and I tried cbind initial column with the other columns to get the matrix I want. It did work! Thanks also for the note about the parentheses. It real useful. 
I'll try Oarray if that would fasten the iteration. Thanks again!


Deana
PhD Candidate

On Oct 24, 2011, at 19:02, "David Winsemius" <dwinsemius at comcast.net> wrote:

> 
> 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