Skip to content

Gibbs sampler...did it work?

2 messages · ekwaters, jim holtman

#
I am writing a Gibbs sampler. I think it is outputting some of what I want,
in that I am getting vector of several thousand values (but not 10,000) in a
txt file at the end.

My question is, is the error message (see below) telling me that it can't
output 10,000 values (draws) because of a limitation in my memory, file
size, shape etc, or that there is an error in the sampler itself?
+ s2yg[i,]=parsy+t(rnorm(1,mean=0,sd=s2ygscale[i])%*%chol(s2eg2[i]*xgtxgi))
+ write(c(s2yg[i,],s2eg2[i]),
+ file="/media/DataTravelerMini/KINGSTON/Honours/R/IPR/s2yg2.txt", append=T,
ncolumns=1)
+ if(i%%50==0){print(c(s2yg[i,],s2eg2[i]))}}

I GET A BUNCH OF NUMBERS PRINTED HERE, THE OUTPUTTED VALUES WHICH ALSO
APPEAR IN A TEXT FILE.  I HIT ABOUT 2000 VALUES, THEN I GET THIS MESSAGE:

Error in s2yg[i, ] = parsy + t(rnorm(1, mean = 0, sd = s2ygscale[i]) %*%  :
        subscript out of bounds


Ned
#
It is not that you are out of memory; one of your two 's2yg' objects
is not large enough (improperly dimensioned?) so you get the subscript
error.  You can put the following in your script to catch the error
and then examine the values:

options(error=utils::recover)
On Sun, Jan 25, 2009 at 6:25 PM, ekwaters <ekwaters at unimelb.edu.au> wrote: