On Thu, 25 Jul 2013, Logan Kelly wrote:
I have two questions. First, is this the correct list to
post this question? I am not sure if it belongs here or in
the gretl-devl list. Apologies, if I have guessed wrongly.
Could go either way, no worries.
Second, regarding accessing a list element. Should following
assign the data in the first series of lstX to matrix matX?
matrix matX = {lstX[1]}
Currently, this yields the matX = series id number. This
question is related to an earlier question on the list see
below.
That's what I'd expect. A named list in gretl is an array of
ID numbers of series in the current dataset. Let's look at the
related case you mention:
>> Is it possible to access elements of a list. I need the
variable name-as a
>> string-of the i_th element of a list. Something like
>>
>> string variable_name = varnam(ylist[i])
>
> You can't directly index into a list [...]
Actually, that seems a bit lame. Now in CVS and snapshots you
can do that -- the expression above should now work (apart
from the typo of "varnam" for "varname" ;-).
The help doc says of the varname() function: "If given an
integer argument [v], returns the name of the variable with ID
number v, or generates an error if there is no such variable."
The expression "ylist[i]", for ylist a named list and i an
index within bounds for the list, yields a particular series
ID number, which is what's wanted as an argument for
varname().
A series ID number can be used as such in many contexts in
gretl (mostly commands rather than functions), but if you try
to use it in creating a matrix, as in
matrix matX = {lstX[1]}
the interpretation of the "ID number" as simply a number
trumps its interpretation as the index of a series --
otherwise it would be impossible to construct a plain
numerical matrix as, say,
matrix m = {1,2,3}
So: you can (now) index into a list using listname[i], but
this gives you an integer result, which will be interpreted as
a series index only in certain contexts (which should all be
identified as such in the command and function help, I
believe).
Allin Cottrell