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 |
Wed, 23 Jan 2013 22:10:34 -0500 |

Okay, I still don't know exactly what the problem was, but for anybody in the future that runs into this problem; the problem goes away by quitting and re-starting Stata. On Sat, Jan 12, 2013 at 4:32 AM, Nick Cox <njcoxstata@gmail.com> wrote: > OK; but my advice on using -trace- commands still stands. > > Nick > > On Sat, Jan 12, 2013 at 1:53 AM, Stephen Cranney <scranney@sas.upenn.edu> wrote: >> Apologies, that was actually a comment from a prior version. It should >> be on the same line as the * comment on the line before, but the email >> made it into another line, so that's not an issue. >> >> On Fri, Jan 11, 2013 at 8:25 PM, Nick Cox <njcoxstata@gmail.com> wrote: >>> generate .o= oldage infertility >>> >>> won't work. In general, see -help trace- to learn about debugging commands. >>> >>> Nick >>> >>> On Sat, Jan 12, 2013 at 12:46 AM, Stephen Cranney >>> <scranney@sas.upenn.edu> wrote: >>>> 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/

**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>

**Re: st: Command line syntax for optional and required numeric statements***From:*Stephen Cranney <scranney@sas.upenn.edu>

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

**Re: st: Command line syntax for optional and required numeric statements***From:*Stephen Cranney <scranney@sas.upenn.edu>

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

- Prev by Date:
**Re: st: RE: ODBC vs. insheet variable format troubles (importing SQL data)** - Next by Date:
**RE: st: ODBC vs. insheet variable format troubles (importing SQL data)** - 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):