Is there any way to tell Stata to ignore the command when at least one of
the referenced entries does not exist?
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: Tuesday, August 09, 2005 5:09 PM
To: [email protected]
Subject: st: RE: Bracket [ ] notation
If the subscript on the RHS is missing (meaning not present in the dataset),
the result on the LHS will be missing too (meaning "missing").
Here the use of -by:- is just a detail and does not affect the principle.
The principle can be seen by
sysuse auto
di mpg[0]
di mpg[75]
As advised in another thread, you would surely be better off re-casting this
using time-series operators.
Nick
[email protected]
P.S. the spelling is Stata.
Terra Curtis
> I am running into some problems trying to run a nonlinear regression.
> I continue to get error 480 "starting values invalid or some RHS
> variables have missing values." I think I see where my error is but
> I'm not sure how STATA deals with a reference, say 'by varname:
> data[x]' if x is out of the range of data for that varname. Here is
> my code: I have written a program to specify the nonlinear equation,
> and that is where the error is:
>
> program nlstk2_depreciation
> version 8.1
> if "`1'" == "?" {
> global S_1 "B3 B4 B5 drd2 dmktg2"
> global B3=1
> global B4=1
> global B5=1
> global drd2=0.15
> global dmktg2=0.15
> exit
> }
> forvalues x=10/53 {
> by coname: replace `1'=$B3+$B4*(ireal46[`x'] +
> (1-$drd2)*ireal46[`x'-1] + (1-$drd2)^2*ireal46[`x'-2] +
> (1-$drd2)^3*ireal46[`x'-3] + (1-$drd2)^4*ireal46[`x'-4] +
> (1-$drd2)^5*ireal46[`x'-5] + (1-$drd2)^6*ireal46[`x'-6] +
> (1-$drd2)^7*ireal46[`x'-7]+ (1-$drd2)^8*ireal46[`x'-8] +
> (1-$drd2)^9*ireal46[`x'-9]/$drd2) + $B5*(imktg[`x'] +
> (1-$dmktg2)*imktg[`x'-1] + (1-$dmktg2)^2*imktg[`x'-2] +
> (1-$dmktg2)^3*imktg[`x'-3] + (1-$dmktg2)^4*imktg[`x'-4] +
> (1-$dmktg2)^5*imktg[`x'-5] + (1-$dmktg2)^6*imktg[`x'-6] +
> (1-$dmktg2)^7*imktg[`x'-7] + (1-$dmktg2)^8*imktg[`x'-8] +
> (1-$dmktg2)^9*imktg[`x'-9]/$dmktg2) if `x'==year
> }
> end
>
> I have panel data for companies over a period of years, although each
> company has a different amount of years of data (no company has more
> than 53 years of data). If a company has 10 years of data, I want the
> regression to use all 10 years of data. If it has more than 10 years
> of data, I want it to use the most recent 10 (say, years 1990-1999),
> then use the next 10 (years 1989-1998), and so on until it gets to the
> last set of 10 years for that company. I think the logic of the
> equation I have written works out, so I'm guessing the error is coming
> from some referencing problem in the brackets...I don't quite
> understand how STATA would deal with ireal46[49] if some company
> didn't have a 49th ireal46 entry.
>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/