On Tue, 13 Jul 2010, Artur T. wrote:
Thank you very much for your responses and ideas. This was exactly
what
I was looking for!! ;-)
Good.
I've got only one problem - maybe it is a bug or so. I modified
the
function like this:
------
function series paasche_index (list P, int base)
matrix MP = {P}
matrix Num = sumr(MP)
matrix Den = sumr(MP[base,])
series ret = 100 * (Num ./ Den)
return ret
end function
-----
I've got obs. from 1947:1 to 2010:2 and before running the function for
a variable I restrict the sample by "smpl --no-missing x". For some
reason I obtain an error for some variables saying:
"? smpl --no-missing q
Full data range: 1947:1 - 2010:2 (n = 254)
Current sample: 1952:1 - 2008:4 (n = 228)
? series q_indx = paasche_index(q, 2005:1)
Index value 233 is out of bounds
"2005:1" translates into an offset from the absolute start of the
data, namely 233 if the data start in 1947:1. But if you
sub-sample the data then convert to a matrix, row 233 will not
correspond to 2005:1 any more, and may be out of bounds.
I don't think this is a bug, it's just something you have to keep
in mind when converting between series and matrices.
What you'd have to do is
smpl --no-missing q
scalar base = 2005:1 - $t1 + 1
series q_indx = paasche_index(q, base)
Allin Cottrell