Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: how to work around -levelsof- limits with Stata 9.2/SE?


From   "Ben Jann" <[email protected]>
To   [email protected]
Subject   Re: st: RE: how to work around -levelsof- limits with Stata 9.2/SE?
Date   Tue, 14 Oct 2008 13:49:38 +0200

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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index