Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

st: AW: RE: RE: RE: RE: Is it possible to write a procedure in Stata that interacts with the user?


From   "Martin Weiss" <martin.weiss1@gmx.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: AW: RE: RE: RE: RE: Is it possible to write a procedure in Stata that interacts with the user?
Date   Wed, 14 Apr 2010 13:54:26 +0200

<> 



I could also see Adriaan extending the -syntax- line to include an option to
indicate which statistics the user wants. Having Stata query the user during
the execution of a -program- is quite unusual - though Adriaan specifically
asked for that...



HTH
Martin


-----Ursprüngliche Nachricht-----
Von: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Nick Cox
Gesendet: Mittwoch, 14. April 2010 13:51
An: statalist@hsphsun2.harvard.edu
Betreff: st: RE: RE: RE: RE: Is it possible to write a procedure in Stata
that interacts with the user?

See also documentation on dialog programming. 

Nick 
n.j.cox@durham.ac.uk 

Hoogendoorn, Adriaan

Wow!
Thank you, Martin (and Michael) for your reactions to my post.
Very helpfull...

Martin Weiss [martin.weiss1@gmx.de]

Try:

*******

cap pr drop my_summarize

prog my_summarize
        vers 11.0
        syntax varname
        di in r "Type 1 if you want mean and standard deviation" _n /*
        */ "Type 2 if you want median an interquartile range"  /*
        */ _request(myrequest)
        qui{
         su `varlist', det
        if $myrequest==1 {
                noi di _n(2) in r "mean: " r(mean) ", sd: " r(sd)
        }
        else if $myrequest==2 {
                noi di _n(2) in r "median: " r(p50) ", iqr: "
`=r(p75)-r(p25)'
        }
        else{
                noi di _n(2) in r "I said 1 or 2..."
        }
}
end
*******


Then say:


*******
sysuse auto, clear
my_summarize mpg
//upon request:
1
my_summarize mpg
//upon request:
2
my_summarize mpg
//upon request:
3
*******

Martin Weiss

Have you had a look at

*******
h display
*******

and the -_request- syntax?

Hoogendoorn, Adriaan

Is it possible to write a procedure that interacts with the user?
To give an example of what I mean, suppose that I could create such an
interacting procedure "my_summarize" (in a do file) ending with:

sysuse auto
my_summarize mpg

Now  I would like Stata to interact with the user, and want Stata to
come up with the following suggestion:
Type 1 if you want mean and standard deviation or
Type 2 if you want median an interquartile range.
Please type either 1 or 2.
.
Typing 1 or 2 from would now result in either the mean and sd of mpg or
its median and iqr.

Is such an approach (or some alternative) possible in 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/


*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index