Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: Indexing Question

From   n j cox <>
Subject   RE: st: Indexing Question
Date   Tue, 30 Aug 2005 16:09:50 +0100

You won't learn much if you want assistance
every step of the way. Also, the morphing
question ("Ah, but my question is really ...")
strains almost everyone's patience. This is my
final contribution to this thread.

Question 1 -----------------------------------------
What if some observations are only in part of that range? suppose i want to calculate the % change in X for all observations from 7/2/05-7/5/05. Since I have a large database, there may be
observations that are in part of the period (e.g. 7/3/05-7/4/05). I want to calculate the % change in X for all observations that appear throughout that period, or a portion of that period.

This is a modification of the previous example. Use -inrange()-,
not -inlist()-.

gen OK = inrange(date, d(2jul2005), d(7jul2005))
bysort id OK (date) :
gen pc_change = 100 * (X[_N] - X[1])/X[1] if OK

Question 2 ---------------------------------------
Also, how can I make it output a single number (for this variable) for each id?

I already gave you a hint on this in pointing to -egen, tag()-.
-tabdisp- is another command that will help.

Nick Cox

>Your dates are to me ambiguous.
>I'll guess your dates are month/day/year.
>gen OK = !inlist(date, d(2jul2005), d(7jul2005))
>bysort id (OK date) : gen pc_change = 100 * (X[2] - X[1])/X[1] if OK[1] ==
>0 & OK[2] == 0
>The trickery with !inlist() is just a way to make the
>sort order convenient. The OK dates will be coded 0
>and sorted to the first two observations in each panel.
>The result will be repeated for each observation in the panel.
>Use -egen, tag()- or some other method to select just one.
>Note that your example shows repeated values for
>panel 3.

kelly johnson

> > What if I want to do the same calculation, but in a specific
> > time period.
> > Eg. in my data set, I want to calculate teh percentage change
> > in X between
> > 7/2/05-7/5/05 (for all observations with data in that time
> > period).
* For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index