Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | annoporci <annoporci@gmail.com> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | st: generate variable versus define scalar, with conditional statement |
Date | Tue, 15 Jan 2013 20:38:13 +0800 |
I learned something today I'd like to share with Statalist. The way to conditionally define a variable and a scalar are different. An example is given below. clear all sysuse sp500 /// generate a new variable with missing entries except at the given date mdy(1,2,2001): gen newvariable = open if date == mdy(1,2,2001) /// define a new scalar by the value of variable open at the given date mdy(1,2,2001): if date == mdy(1,2,2001) scalar newscalar = open scalar list /// THIS IS NOT THE WAY: scalar newscalar = open if date == mdy(1,2,2001) The above, incorrect way, is intuitive for a beginner (like myself), it is similar to the syntax to generate new variables, but it won't work. This is trivial for 99% of Statalist users, but may be a useful tip for the remaining 1%. And if not, almost surely for a future incarnation of myself scanning through Statalist for hints when the following error message displays: if not allowedWhen I submitted *stata scalar "if not allowed"* Google returned a solution, in a more complicated setting:
http://statalist.1588530.n2.nabble.com/scalar-do-not-allow-if-td5748129.html -- Patrick Toche. * * 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/