On Thu, May 19, 2016 at 6:06 PM, Summers, Peter <psummers(a)highpoint.edu>
wrote:
Dear all,
I’ve run across something strange when using diff() in a loop. Given a
series with missing values, Gretl seems to be “recycling” values from the
previous loop iteration. The following script illustrates the problem: on
the second loop iteration, the series “r” should be missing for the first
half of the sample but instead the values from the first loop iteration are
printed. Doing the same thing “by hand” after the loop produces what I’d
expect. Is this intended?
<hansl>
nulldata 104
setobs 52 2006-01-03
series y1 = uniform()
series y2 = uniform()*(obs>obsnum(2006-07-04))
y2 = zeromiss(y2) # y2 is missing for first half
list ylist = y1 y2
loop foreach i ylist --quiet
r = 100*diff(log(ylist[i]))
print ylist[i] r --byobs
endloop
r1 = 100*diff(log(y1))
r2 = 100*diff(log(y2))
print r1 r2 --byobs
</hansl>
Sorry it has taken me a while to get to this, but I've now figured
out what was going wrong, and it's fixed in git and snapshots.
Allin Cottrell