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]

From |
John Antonakis <John.Antonakis@unil.ch> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: -args- how to flag when missing or too many arguments |

Date |
Fri, 22 Mar 2013 09:35:12 +0100 |

Hi Nick Your first line was munched by the hungry list beast. Could you resend? Best, J. __________________________________________ John Antonakis Professor of Organizational Behavior Director, Ph.D. Program in Management Faculty of Business and Economics University of Lausanne Internef #618 CH-1015 Lausanne-Dorigny Switzerland Tel ++41 (0)21 692-3438 Fax ++41 (0)21 692-3305 http://www.hec.unil.ch/people/jantonakis Associate Editor The Leadership Quarterly __________________________________________ On 22.03.2013 09:30, Nick Cox wrote: > work" as an error report. > > if "`chi'" == "" > > is sufficient as a test of there not being four arguments. Whether > there are none, one, two, or three, it follows in each case that there > was no fourth argument. > > Your code does not test that the arguments are integers (which you can > do in one line with -numlist-). > > Nick >

>> Thanks Nick. That works. >>

>> works. Following Nick's approach, the below doesn't work and I can't see >> why: >> >> ... >> args no_vars df N chi too_much >> >> *nick's part, works >> if "`too_much'" != "" { >> di as err "Too many arguments. " >> exit 198 >> } >> >> *my part, does not work >> if "`no_vars'"=="" | "`df'"=="" | "`N'"=="" | "`chi'"=="" { >> di as err "You have to use four integers. " >> exit 498 >> >> } >> >> Best, >> J. >> >> __________________________________________ >> >> John Antonakis >> Professor of Organizational Behavior >> Director, Ph.D. Program in Management >> >> Faculty of Business and Economics >> University of Lausanne >> Internef #618 >> CH-1015 Lausanne-Dorigny >> Switzerland >> Tel ++41 (0)21 692-3438 >> Fax ++41 (0)21 692-3305 >> http://www.hec.unil.ch/people/jantonakis >> >> Associate Editor >> The Leadership Quarterly >> __________________________________________ >> >> On 22.03.2013 02:46, Nick Cox wrote: >>> >>> My approach for these problems is -- in a case with only 4 arguments >>> wanted -- >>> >>> args a b c d garbage >>> >>> if "`garbage'" != "" >>> di as err "too many arguments" >>> exit 198 >>> { >>>

>>> wrote: >>>> >>>> Thanks, Austin. >>>> >>>> This works too, except for when w > 4; it does not display the error. >>>> The

>>>> in >>>> Stata). >>>> >>>> >>>> Best, >>>> J. >>>> >>>> __________________________________________ >>>> >>>> John Antonakis >>>> Professor of Organizational Behavior >>>> Director, Ph.D. Program in Management >>>> >>>> Faculty of Business and Economics >>>> University of Lausanne >>>> Internef #618 >>>> CH-1015 Lausanne-Dorigny >>>> Switzerland >>>> Tel ++41 (0)21 692-3438 >>>> Fax ++41 (0)21 692-3305 >>>> http://www.hec.unil.ch/people/jantonakis >>>> >>>> Associate Editor >>>> The Leadership Quarterly >>>> __________________________________________ >>>> >>>> On 21.03.2013 22:54, Austin Nichols wrote: >>>>> >>>>> John Antonakis <John.Antonakis@unil.ch>: >>>>> You might also want to step through various conditions and then issue >>>>> a more informative error message at the end, e.g. consider adapting >>>>> this approach: >>>>> >>>>> cap prog drop john >>>>> prog john, rclass >>>>> version 12 >>>>> loc err 0 >>>>> args no_vars df N chi >>>>> loc w: word count `no_vars' `df' `N' `chi' >>>>> if `w'>4 { >>>>> loc err 1 >>>>> di in red "More than 4 arguments given" >>>>> } >>>>> foreach v in no_vars df N chi { >>>>> cap confirm integer number `=``v''' >>>>> if _rc!=0 { >>>>> loc err 1 >>>>> di in red "Arguments must be integers." >>>>> } >>>>> else if ``v''<0 { >>>>> loc err 1 >>>>> di in red "Arguments must be positive integers." >>>>> } >>>>> } >>>>> if `err'==1 { >>>>> di in red "Please enter data after the command" _c >>>>> di in red " john as follows: vars df N chi" >>>>> exit 198 >>>>> } >>>>> end >>>>> >>>>> On Thu, Mar 21, 2013 at 5:49 PM, daniel klein >>>>> <klein.daniel.81@gmail.com> >>>>> wrote: >>>>>> >>>>>> John, >>>>>> >>>>>> I think I would address this with something like this >>>>>> >>>>>> cap pr drop john >>>>>> pr john >>>>>> vers 12.1 >>>>>> >>>>>> args a b c d >>>>>> if !inrange(`: word count `0'', 1, 4) { >>>>>> di as err "Please enter data after " /// >>>>>> "the command john as follows: vars df N chi" >>>>>> e 198 >>>>>> } >>>>>> numlist "`0'" ,int r(>0) >>>>>> >>>>>> end >>>>>> >>>>>> Best >>>>>> Daniel >>>>>> -- >>>>>> Hi: >>>>>> >>>>>> I am writing a program and would like Stata to return an error if an >>>>>> argument is missing or there are too many of them. >>>>>> >>>>>>

>>>>>> error: >>>>>> >>>>>> >>>>>> program define john, rclass >>>>>> version 12 >>>>>> args no_vars df N chi >>>>>> >>>>>> if `no_vars'<0 | `df'<0 | `N'<0 | `chi'<0 { >>>>>> di in red "You have to use integers." >>>>>> exit 498 >>>>>> } >>>>>> end >>>>>> >>>>>> Now, how do I make Stata display: >>>>>>

>>>>>> N >>>>>> chi" >>>>>> >>>>>> >>>>>> .....in cases where (a) there is a missing value (i.e., the user >>>>>> missed putting 4 numbers) and (b) if the user provides too many >>>>>> numbers (i.e., 5 instead of 4). >>> >>> * >>> >>> * For searches and help try: >>> * http://www.stata.com/help.cgi?search >>> * http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**References**:**Re: st: -args- how to flag when missing or too many arguments***From:*daniel klein <klein.daniel.81@gmail.com>

**Re: st: -args- how to flag when missing or too many arguments***From:*Austin Nichols <austinnichols@gmail.com>

**Re: st: -args- how to flag when missing or too many arguments***From:*John Antonakis <John.Antonakis@unil.ch>

**Re: st: -args- how to flag when missing or too many arguments***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: -args- how to flag when missing or too many arguments***From:*John Antonakis <John.Antonakis@unil.ch>

**Re: st: -args- how to flag when missing or too many arguments***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**Re: st: -args- how to flag when missing or too many arguments** - Next by Date:
**Fwd: st: -args- how to flag when missing or too many arguments** - Previous by thread:
**Re: st: -args- how to flag when missing or too many arguments** - Next by thread:
**Fwd: st: -args- how to flag when missing or too many arguments** - Index(es):