Dear Ben,
thanks a lot for your kind reply.
Yes, I can confirm that ICER_round is a numeric variable and, since
-levelsof- hits Stata limits, I will try to move to mata syntax.
Thanks a lot and Kind Regards,
Carlo
-----Messaggio originale-----
Da: [email protected]
[mailto:[email protected]] Per conto di Ben Jann
Inviato: martedì 14 ottobre 2008 13.50
A: [email protected]
Oggetto: Re: st: RE: how to work around -levelsof- limits with Stata 9.2/SE?
I think it should be
levelsof ICER_round, loc(levels)
foreach lev of local levels {
generate result`lev' = `lev' * Delta_Q - Delta_C
}
However, are you really sure you want to generate 10000 variables?
Furthermore, should -levelsof- hits Stata's limits you could type
mata: st_local("levels",
mm_invtokens(strofreal(uniqrows(st_data(.,"ICER_round"))')))
assuming that ICER_round is a numeric variable (-mormata- required,
type -ssc describe moremata-).
ben
On Tue, Oct 14, 2008 at 1:24 PM, Martin Weiss <[email protected]> wrote:
> "levelsof may hit the limits imposed by your Stata. However, it is
> typically used when the number of distinct values of varname is modest."
> (from -h levelsof-). I should have anticipated this problem. Are the
levels
> of your "a" in any way regularly spaced (to enable application of
> -forvalues-)?
>
>
> HTH
> Martin
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Carlo Lazzaro
> Sent: Tuesday, October 14, 2008 12:44 PM
> To: [email protected]
> Subject: st: how to work around -levelsof- limits with Stata 9.2/SE?
>
>
> Dear Statalisters,
> I have performed successfully Martin's helpful syntax using -levelsof- on
a
> sample of 20 distinct values for var a.
> However, when I tried to repeat the loop for the total 10,000 levels of
var
> a I got an error message(admittedly, the recommended limit for -levelsof-
is
> a modest number of distinct values for varlist, so I cannot complain about
> this useful ado.file). Is there any way to work this around?
>
> Please find below the command lines I typed along with the error message I
> got at the end of the sequence:
>
> . levelsof ICER_round, loc(levels) *around 10,000 levels are still
> reported after rounding to the nearest whole number
> . foreach lev of local levels {
> 2. g result`lev'=` ICER_round'* Delta_Q- Delta_C
> 3. }
> invalid syntax
> r(198);
>
> Thanks a lot for your kindness and for your time.
>
> Kind Regards,
>
> Carlo
>
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/