Anton is correct about -disjoint-. It is not
designed for his problem.
At worst his -d0- and -d1- are string variables
that need to be converted:
clear
set obs 2
gen d0 = cond(_n == 1, "1Jan99", "2Jan99")
gen d1 = cond(_n == 1, "6Jan99", "7Jan99")
gen x = _n
gen date0 = date(d0, "dmy", 2050)
gen date1 = date(d1, "dmy", 2050)
format date* %dd_m_CY
Get how long each programme lasted and -expand-:
gen duration = date1 - date0 + 1
gen id = _n
expand duration
Map first date variable to increasing sequences
bysort id : replace date0 = date0[_n-1] + 1 if _n > 1
and cumulate identifiers:
gen which = ""
bysort date0 (x) : replace which =
which[_n-1] + string(x) + " " if x != x[_n-1]
Clean up:
by date0 : keep if _n == _N
bysort which (date0) : replace date1 = date0[_N]
bysort which (date0) : keep if _n == 1
drop dur id
replace which = trim(which)
This is what I get:
+-------------------------------------------------------+
| d0 d1 x date0 date1 which |
|-------------------------------------------------------|
1. | 1Jan99 6Jan99 1 1 Jan 1999 1 Jan 1999 1 |
2. | 2Jan99 7Jan99 2 2 Jan 1999 6 Jan 1999 1 2 |
3. | 2Jan99 7Jan99 2 7 Jan 1999 7 Jan 1999 2 |
+-------------------------------------------------------+
My results differ from Anton's example.
Nick
[email protected]
Anton econ (edited):
In my data set I have a number of overlapping dates
showing start and end of various programmes. I would like to
create a dataset which consists of consecutive dates and
contains information on types of programmes.
(See example below.)
Potentially this can be solved with the -spellsplit-
command which is a part of the -spellutil- package.
However -spellsplit- allows you only to sum or average
variables included into the dataset.
The -disjoint- command does not seem to solve the problem
either.
/*** Example ***/
d0 d1 x
1. 1Jan99 6Jan99 1
2. 2Jan99 7Jan99 2
d0 d1 x
1. 01Jan1999 02Jan1999 1
2. 02Jan1999 07Jan1999 1;2
*
* 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/