Saturday, March 11, 2006

st: RE: Problem with a ado file

Others have answered the main question.

From another point of view, this can be slimmed down:

gen output = . levelsof year, local(Y) qui foreach y of local Y { tempvar work xtile `work' = input if year == `y', nq(5) replace output = `work' if year == `y' drop `work' }

This also makes fewer assumptions about the spacing of the years variable.


Nuno Soares > I'm new at using the STATA programming capabilities and I'm > having a problem > with a function I'm trying to implement. The objective is to create a > variable that is able to capture the year specific quintiles > of a given > variable into a new variable. Ex. Imagine we have a sample > with the income > of the subjects and the year it was surveyed. What I need is > to get the > quintile each individual belongs to according to his income, > for each year, > for all the years. The xtile command only allows to generate > the desired > classification for a each year at a time (and I have 20 > years, and i need to > do this to several variables, for several breakpoints). > The ado file I've written is the following: > program qtex > version 9.0 > args inputvar years outputvar start_year end_year qtiles > quietly gen `outputvar' =. > while `start_year'<=`end_year' { > quietly gen xtile `_tempqt' = `inputvar' if `years' == > `start_year', nquantiles(`qtiles') > quietly replace `outputvar' == `_tempqt' if > `_tempqt' ~=. > quietly drop `_tempqt' > local start_year = `start_year' + 1 > } > end > The inputvar is the variable that is intended to be used for the > classification; years is the variable which holds the year > each observation > belongs to; outputvar is the variable that will hold the > classification for > each observation; start_year and end_year the start and end > periods that > will be used as criteria for classification; qtiles the > number of quantiles > to be created. > The message STATA returns is: > invalid syntax > r(197);

* * For searches and help try: * * *


Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?