Dear Gretlers,

I would like to know how to do two specific operations which I am not able to perform in a proper way:
1) delete variables using loop/for constructs
2) remove variables which contain only missing values and/or have less than "N" valid observations

1) As far as the first problem is concerned, I partially solved it by writing a file using outfile and printf but I guess it is not the most efficient way to do it. That is, for the time being I solved it in the following way:

loop for (i=1; i<100; i+=1)
  outfile --append foo.inp
  printf "delete %d\n", $i
  outfile --close
endloop
run foo.inp

 However, I cannot directly use something like this:

loop for (i=1; i<100; i+=1)
 delete $i
endloop

because I receive the following error message: "You cannot delete series in this context" .

2) Besides the problem at point 1), I would like to know if there is a way to delete variables using some sort of condition upon the number of observations they contain. That is, what I have in mind is something like this (N is a scalar):

loop for (v=1; v<100; v+=1)
  if (sum(missing($v))<N)
    delete $v
  endif
endloop

However, I cannot do it because if I run "missing($v)" inside a loop it interprets "$v" as a number and not as a reference to a variable. Therefore, I would like to know if there is any way to tell Gretl "consider that number as a reference to a variable, not as a scalar" since this would come handy also in many other situations. Notice also that, in my case, I cannot build a list containing all the (string) names of all the variables since I get an error (probably because Gretl cannot handle two thousands strings... I guess..).

Thanks in advance for your help,

Matteo