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

From |
Eric Booth <[email protected]> |

To |
[email protected] |

Subject |
Re: st: argument with digits after decimal point? |

Date |
Fri, 1 Jan 2010 00:49:55 -0600 |

<> Apparently, you don't need to create the macro "ci2", just replace "ci" with a rounded version of its self to shorten the code I gave earlier, so: *************** clear sysuse auto * -------------------------- cap program drop test22 program define test22 syntax [, ci(real 95)] di "before rounding: " "`ci'" local ci : display round(`ci', .01) di "after rounding: " "`ci'" set level `ci' end * -------------------------- * -------------------------- test22, ci(99.9) * -------------------------- *************** ~ Eric __ Eric A. Booth Public Policy Research Institute Texas A&M University [email protected] Office: +979.845.6754 On Dec 31, 2009, at 7:55 PM, Eric Booth wrote: > <> > > Dirk: > > A couple of issues here. > #1 Realize that there is already a program -test- in Stata, so you need to either change the name or -drop program- test before running your code. > #2 When you ask Stata to capture the real number in ci(99.9), it captures the real number "99.90000000000001", not "99.9", which is what the -set level- command doesn't like, so it give you the error. See the results of running your program with -set trace on- below: > > > ----------------------------------------------------------------------- begin test --- > - syntax [, ci(real 95)] > - set level `ci' > = set level 99.90000000000001 > level() can have at most two digits after the decimal point > ------------------------------------------------------------------------- end test --- > > So, you need to round `ci' before passing it to the -set level- command. I'm not a Stata programmer, so I don't know if there are better ways of doing this in a program, but here's one way that worked for me (NOTE: I changed your program to "test22" to avoid issues I mentioned in #1 above): > > *************** > clear > sysuse auto > > * -------------------------- > cap program drop test22 > program define test22 > syntax [, ci(real 95)] > di "before rounding: " "`ci'" > local ci2 : display round(`ci', .01) > local ci = "`ci2'" > di "after rounding: " "`ci'" > set level `ci' > end > * -------------------------- > * -------------------------- > test22, ci(99.99) > * -------------------------- > *************** > > > #3 Finally, the -syntax- help file indicates that there is already a pre-built option in there for grabbing the confidence level. There might be other reasons that you want to capture it in the `ci' macro, but if not, you might try substituting in the -ci(cilevel)- option: > > > **************** > clear > sysuse auto > * -------------------------- > cap program drop test22 > program define test22 > syntax [, ci(cilevel)] > set level `ci' > di "`ci'" > > end > * -------------------------- > > * -------------------------- > > test22, ci(99.9) > * -------------------------- > ****************** > > ~ Eric > __ > Eric A. Booth > Public Policy Research Institute > Texas A&M University > [email protected] > Office: +979.845.6754 > > > > > > On Dec 31, 2009, at 6:46 PM, Dirk Enzmann wrote: > >> Why does the following program not work as intended? >> >> * -------------------------- >> program define test >> syntax [, ci(real 95)] >> set level `ci' >> end >> * -------------------------- >> >> It is an example of a program that allows the optional argument "ci" to specify the confidence level (the default should be 95). It works as intended as long as I don't specify "ci" with digits after the decimal point. But if I do, for example >> >> * -------------------------- >> test, ci(99.9) >> * -------------------------- >> >> I receive the error message "level() can have at most two digits after the decimal point". What am I doing wrong, i.e. how can I avoid this problem? >> >> *************************** >> Dirk Enzmann >> [email protected] >> * * * 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/

- Next by Date:
**st: Thanks to Statalisters** - Next by thread:
**Re: st: argument with digits after decimal point?** - Index(es):

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