Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

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

From |
Stephen Cranney <scranney@sas.upenn.edu> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Command line syntax for optional and required numeric statements |

Date |
Fri, 11 Jan 2013 19:46:41 -0500 |

I tried discard (thanks for the head up--didn't know that could be an issue), but it still isn't working. I'm usually not wont to do this, but because I'm a little lost I'm just going to go ahead and post the whole command I'm trying to write, not because I expect anybody to spend the time to pick apart the whole code, but just because this has some problem in the beginning couple of lines that needs context. Everything within the syntax bracket is on one line, but was cut up because of the email. program birthsim, rclass version 11.2 syntax [, startyear (real 2000) endyear(real 2100) birthday (real 9) birthmonth (real 1) birthyear (real 1987) marriageday (real 24) marriagemonth (real 8) marriageyear (real 2008) latestageatbirth(real 50) probabilityconceive(real .2) contraceptioneffectiveness(real 0) probabilitymiscarriage(real .25) fetallossinfertility(real 4) monthsofpostpartum(real 12)] ******************************************************************************************************* *Setup data columns ******************************************************************************************************* set more off set obs 1 generate id=1 generate age=25 generate births= .f set more off forvalues bot = `startyear'(1)`endyear' { gen age`bot' = age >= `bot' } replace age2012=age drop age reshape long age, i(id) j(year) egen month=group (year id) forvalues month = 1(1)12 { gen month`month' = month >= `month' } egen group=group(year id) drop month reshape long month, i(group) j(newvar) drop month rename newvar month drop group ******************************************************************************************* *Calculate birthday, age, and marriage day variable ******************************************************************************************* generate birthdate=mdy(`birthmonth',`birthday',`birthyear') format birthdate %d generate marriagedate=mdy(`marriagemonth', `marriageday', `marriageyear') format marriagedate %d generate marriageage= (marriagedate-birthdate)/365.25 generate day=1 generate date=mdy(month, day, year) format day %d replace age=(date-birthdate)/365.25 generate contraceptionnoneffectiveness= 1-`contraceptioneffectiveness' generate probabilityconceive2= `probabilityconceive'* contraceptionnoneffectiveness ************************************************************************************************************ *Calculate probability of having a child, .i= postpartum infertility, generate .o= oldage infertility ********************************************************************************************************** replace births= .a if age > `latestageatbirth' replace births= .a if age < marriageage replace births= rbinomial(1, probabilityconceive2) if births== .f generate miscarriage= rbinomial(1, `probabilitymiscarriage') if births== 1 ****************************************************************************************** *Create postpartum and post-abortive infertility. ****************************************************************************************** local N = _N local monthsofpostpartum = 12 local monthsofpostmiscarriage= 7 forvalues i = 1/`N' { forvalues j= 1/`monthsofpostpartum' { local k = `i' + `j' local s= (`monthsofpostmiscarriage'-`j') + `i' + 1 if births[`i']==1 & miscarriage[`i']==0 replace births= .p in `k' if births[`i']==1 & miscarriage[`i']==1 & `s'>1 replace births= .m in `s' } } sum births if births==1 return scalar children= r(N) end On Fri, Jan 11, 2013 at 4:45 PM, kantor.d@att.net <kantor.d@att.net> wrote: > Are remembering to -discard- ? > > Sent with Verizon Mobile Email > > > ---Original Message--- > From: statalist@hsphsun2.harvard.edu > Sent: 1/11/2013 4:42 pm > To: statalist@hsphsun2.harvard.edu > Subject: RE: st: Command line syntax for optional and required numeric statements > > Stephen, > > The following lines of code work fine for me, so you'll need to show us a little more of what you're doing. > > Incidentally, I thought the spaces after the -birthday- and -birthmonth- options would bite, but it works fine with them. > > - Elan > > > cap program drop testsyntax > program testsyntax > syntax [, startyear(real 2000) birthday (real 9) birthmonth (real 1)] > > di "`startyear'" > di "`birthday'" > di "`birthmonth'" > end > testsyntax > testsyntax, startyear(1981) birthday(5) birthmonth(1) > > > -----Original Message----- > From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Stephen Cranney > Sent: Friday, January 11, 2013 16:25 > To: statalist@hsphsun2.harvard.edu > Subject: Re: st: Command line syntax for optional and required numeric statements > > I'm still getting the "invalid syntax" response. I tried making it all > optional and setting default values just to make it simpler. Now I > have > > syntax [, startyear(real 2000) birthday (real 9) ! > birthmonth (real 1)] > > I've seen various examples online that have this same format that don't > seem to be having the same problem, so I guess at this point my main > question is: in what situations would Stata return an "invalid syntax" > response based on something put in the "syntax" line in the ado file? > Setting trace on doesn't help because "invalid syntax" is > the first thing that pops up. > > Best, > > Stephen > > On Fri, Jan 11, 2013 at 3:09 PM, Nick Cox <njcoxstata@gmail.com> wrote: >> The pattern >> >> latestageatbirth(default=50) >> >> isn't correct for options. See -help syntax-. Try e.g. >> >> latestageatbirth(real 50) >> >> Nick >> >> On Fri, Jan 11, 2013 at 7:31 PM, Stephen Cranney <scranney@sas.upenn.edu> wrote: >> >>> Apologies if this is simple, but I can't figure this out based on the >>> documentation. >>> >>> I'm writing an ado file and am trying to transfer all the macros I >>> reference inside the file to the command line. Some of the values I want to >>> make required, and some I wan! > t to make optional, but with a default value >>> if the option is not t > > a > ken. All of the macros I want in the command line >>> are numeric. >>> A representative snippet of the code is below, based on what I've been able >>> to figure out from the documentation. It gives me an "invalid syntax" >>> response when I try to "birthsim, startyear(2000)...". It works when I do >>> it with args, but obviously that's much more cumbersome than syntax in this >>> context. >>> >>> program birthsim, rclass >>> version 11.2 >>> syntax startyear(integer) endyear(integer) [,latestageatbirth(default=50) >>> ] >>> >> * >> * 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/suppo! > rt/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/

**Follow-Ups**:**Re: st: Command line syntax for optional and required numeric statements***From:*Nick Cox <njcoxstata@gmail.com>

**References**:**RE: st: Command line syntax for optional and required numeric statements***From:*"kantor.d@att.net" <kantor.d@att.net>

- Prev by Date:
**st: Time set twice per day** - Next by Date:
**Re: st: Command line syntax for optional and required numeric statements** - Previous by thread:
**RE: st: Command line syntax for optional and required numeric statements** - Next by thread:
**Re: st: Command line syntax for optional and required numeric statements** - Index(es):