[Gretl-devel] $coeff misbehavior
Allin Cottrell
cottrell at wfu.edu
Tue Mar 11 12:36:49 EDT 2008
On Tue, 11 Mar 2008, Stefano Balietti wrote:
> I tried to access the single values of the $coeff array directly with the
> command
>
> a = $coeff[x,1]
>
> that is a usage of the $coeff array not mentioned in the command
> reference, but anyway it is supposed to return a scalar. On the
> contrary it returns a matrix 1x1.
It now returns a scalar unless you force the issue by saying
matrix a = $coeff[x,1]
> i could specify the new variable as scalar
>
> scalar a = $coeff[x,1]
>
> but here another inconvenient raises. If I try to print the variable a
> without explicitly using the print command, after a few runnig of the same
> script gretl crashes...
Thanks for the example. Fixed in CVS.
> By the way it could be nice to access the coefficients in the
> array with a command like $coeff( number), useful if you don't
> know the name of the variables.
The documentation seems to have slipped a little on this point;
I'll try to fix that soon. But here's the deal:
$coeff(foo) : with round parentheses we require the name of a
parameter.
$coeff[k] : with square brackets we select a coefficient by number
(position in the array)
If you want to get the coefficient of a certain variable whose ID
number in the dataset you know, but whose name you don't know
(and whose position in the array you don't know -- though that
seems a bit weird):
string vname = varname(ID)
scalar b = $coeff(@vname)
In (very) current CVS you could omit the '@':
scalar b = $coeff(vname)
It would be preferable if you could do
scalar b = $coeff(varname(ID))
but strings are not yet sufficiently tightly integrated in
genr.
Allin.
More information about the Gretl-devel
mailing list