On Sun, 28 Dec 2014, Sven Schreiber wrote: > Am 28.12.2014 um 20:37 schrieb Allin Cottrell: > >>> Arrays of strings are not the right tool for the job here; you should use >>> lists. Suppose your "explainedVars" are all put in a list named Y and your >>> "explanatoryVars" in a list named X. Then this would do the analysis: >>> >>> <hansl> >>> loop foreach i Y -q >>> loop foreach j X -q >>> list reglist = Y[i] 0 X[j] >>> ols reglist >>> endloop >>> endloop >>> </hansl> > > (Minor point: I have to say, putting both the LHS _and_ the RHS into one > single list for the ols command feels a little like an abuse of the > syntax and I'm surprised gretl's not complaining about wrong number of > arguments or something similar.)
Internally, all of gretl's basic estimation commands accept a single list argument for the regression specification. For the user doc we split this into "dependent variable" plus "independent variables" but supplying a single named list is OK. >> The use of the variable "reglist" in the inner loop above ought to >> be unnecessary, but up till now it has been required due to a little >> bug in the interpreter. That's now fixed in CVS and snapshots, so >> one can simply do >> >> ols Y[i] 0 X[j] > > This is interesting, I didn't know that indexing into a list like this > is possible. It doesn't seem to be documented, or is it? It hasn't been available for very long. I'll have to check whether it's actually documented. > According to what I've learned about the 'loop foreach' construction, I > would have done the following instead, which feels more natural to me: > > ols $i 0 $j That will work, though it uses string substitution, which is basically evil. (Note to self: I need to write an explanation of why I really don't like string substitution and would like to get rid of it if at all possible). Allin
