<>
Well, it was not your description`s fault, I just lacked an idea how to fill
in the days of the full months. But here is a rather mechanical solution.
Also note that most of the time you are better off using what -h reshape-
calls a "long format", as I have constructed here. You can of course switch
via -reshape-...
*************
clear*
inp str10(var1 var2)
"30nov2007" "14feb2008"
"21jan2009" "07apr2009"
"24apr2008" "09jul2008"
"22feb2008" "08may2008"
"01oct2008" "16dec2008"
"13jul2009" "28sep2009"
"04oct2008" "20dec2008"
"07jul2009" "22sep2009"
"03jun2008" "19aug2008"
"11feb2009" "30apr2009"
"31mar2007" "17jun2007"
"01may2007" "19jul2007"
"04apr2007" "22jun2007"
"03jul2008" "20sep2008"
"10jul2007" "27sep2007"
"10jul2009" "28sep2009"
"08aug2007" "27oct2007"
"15jun2009" "03sep2009"
"12oct2007" "31dec2007"
"20dec2008" "11mar2009"
"04aug2009" "24oct2009"
"01nov2008" "21jan2009"
"04dec2008" "23feb2009"
"31jul2009" "21oct2009"
"03feb2009" "26apr2009"
"24jul2007" "14oct2007"
"16apr2009" "07jul2009"
"23nov2007" "14feb2008"
"15apr2008" "07jul2008"
"01oct2008" "23dec2008"
"30sep2008" "23dec2008"
"07jul2007" "29sep2007"
"14oct2008" "07jan2009"
"15apr2009" "09jul2009"
"02nov2007" "27jan2008"
"30apr2009" "26jul2009"
"15apr2008" "11jul2008"
"27mar2009" "23jun2009"
"01apr2007" "29jun2007"
"07jan2008" "05apr2008"
"09apr2009" "07jul2009"
"21feb2009" "23may2009"
"03dec2008" "04mar2009"
"02jun2009" "02sep2009"
"01apr2009" "03jul2009"
"01apr2009" "03jul2009"
"17apr2008" "20jul2008"
"05may2007" "08aug2007"
"19dec2007" "27mar2008"
"26jun2007" "04oct2007"
"29nov2008" "09mar2009"
"28jan2009" "08may2009"
"01oct2007" "11jan2008"
"01jul2009" "13oct2009"
"25dec2007" "08apr2008"
"30apr2007" "14aug2007"
"19jun2007" "03oct2007"
"01apr2007" "16jul2007"
"19mar2008" "07jul2008"
"07sep2007" "26dec2007"
"09jan2008" "30apr2008"
"10nov2008" "02mar2009"
"09jan2008" "30apr2008"
"12may2008" "03sep2008"
"06jun2009" "30sep2009"
"06jan2009" "02may2009"
"02apr2008" "28jul2008"
"19may2008" "15sep2008"
"21aug2008" "19dec2008"
"21nov2007" "24mar2008"
"04apr2009" "08aug2009"
"19jun2007" "24oct2007"
"15may2009" "26sep2009"
"13nov2008" "29mar2009"
"20aug2007" "13jan2008"
"14oct2008" "10mar2009"
"29nov2008" "25apr2009"
"18sep2007" "14feb2008"
"30apr2009" "26sep2009"
"10apr2007" "08sep2007"
"05apr2008" "03sep2008"
"05mar2008" "08aug2008"
"21apr2009" "29sep2009"
"26feb2009" "08aug2009"
"03feb2009" "19jul2009"
"28apr2007" "18oct2007"
"04apr2007" "28sep2007"
"29apr2007" "25oct2007"
"09jan2008" "09jul2008"
"07oct2007" "08apr2008"
"20feb2009" "07sep2009"
"12may2008" "07dec2008"
"04may2007" "18dec2007"
"05may2007" "06jan2008"
"26jun2007" "16mar2008"
"22may2007" "16feb2008"
"10apr2007" "11jan2008"
"24feb2007" "19dec2007"
"02may2007" "04mar2008"
"28apr2007" "10mar2008"
"17apr2007" "08mar2008"
end
gen admi=date(var1, "DMY")
gen discha=date(var2, "DMY")
format admi discha %tdMonth_DD,_CCYY
drop var1 var2
gen patientid=_n
bys patientid: /*
*/ gen currentmonth=mofd(admi)
format currentmonth %tm
gen numofmon= /*
*/ mofd(discha)-currentmonth+1
expand numofmon
drop numofmon
bys patientid: replace currentmonth= /*
*/ currentmonth+_n-1
gen month=month(dofm(currentmonth))
gen year=year(dofm(currentmonth))
//from NJC`s http://www.stata-journal.com/sjpdf.html?articlenum=pr0013
token `c(Months)'
forv i = 1/12 {
lab def month `i' "``i''" , modify
}
lab val month month
bys patientid: /*
*/ gen days=day(admi) /*
*/ if _n==1
bys patientid: /*
*/ replace days=day(discha) /*
*/ if _n==_N
bys patientid: /*
*/ replace days=28*(month==2)+ /*
*/ 31*inlist(month,1,3,5,7,8,10,12)+ /*
*/ 30*inlist(month, 4,6,9,11) /*
*/ if inrange(_n,2,_N-1)
compress
list patientid month /*
*/ year days, noobs /*
*/ sepby(patientid)
*************
HTH
Martin
-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Rajaram
Subramanian Potty
Gesendet: Montag, 2. November 2009 12:00
An: [email protected]
Betreff: Re: st: AW: Creating number of days per month
Martin thanks for the quick reply and trying the query. I think, I
might not have provided my query correctly. I will be giving example
with the first observation. the patient was admitted in 30nov2007
and discharged in 14feb2008. Now I want to know for this person in
each indiviudal month and individual year how many days he was in the
hospital. For this case Nov 2007 he was there in 1 day, December 2007
31 days, January 2008 31 days, February 2008 14 days. For indicating
this 4 variables has to be generated such as nov2007, Dec2007,
Jan2008, Febr2008. Number of variables may change according to the
date of discharge and date of admission. Hope that now you may be
clear with my query.
RAJA
On Mon, Nov 2, 2009 at 4:00 PM, Martin Weiss <[email protected]> wrote:
>
> <>
>
> Here is part of the solution, how to get the days in the month of
admission
> and discharge. Not sure whether there is an easy way to fill in the months
> in between with their corresponding number of days...
>
>
>
> *************
> clear*
>
> inp str10(var1 var2)
> "30nov2007" "14feb2008"
> "21jan2009" "07apr2009"
> "24apr2008" "09jul2008"
> "22feb2008" "08may2008"
> "01oct2008" "16dec2008"
> "13jul2009" "28sep2009"
> "04oct2008" "20dec2008"
> "07jul2009" "22sep2009"
> "03jun2008" "19aug2008"
> "11feb2009" "30apr2009"
> "31mar2007" "17jun2007"
> "01may2007" "19jul2007"
> "04apr2007" "22jun2007"
> "03jul2008" "20sep2008"
> "10jul2007" "27sep2007"
> "10jul2009" "28sep2009"
> "08aug2007" "27oct2007"
> "15jun2009" "03sep2009"
> "12oct2007" "31dec2007"
> "20dec2008" "11mar2009"
> "04aug2009" "24oct2009"
> "01nov2008" "21jan2009"
> "04dec2008" "23feb2009"
> "31jul2009" "21oct2009"
> "03feb2009" "26apr2009"
> "24jul2007" "14oct2007"
> "16apr2009" "07jul2009"
> "23nov2007" "14feb2008"
> "15apr2008" "07jul2008"
> "01oct2008" "23dec2008"
> "30sep2008" "23dec2008"
> "07jul2007" "29sep2007"
> "14oct2008" "07jan2009"
> "15apr2009" "09jul2009"
> "02nov2007" "27jan2008"
> "30apr2009" "26jul2009"
> "15apr2008" "11jul2008"
> "27mar2009" "23jun2009"
> "01apr2007" "29jun2007"
> "07jan2008" "05apr2008"
> "09apr2009" "07jul2009"
> "21feb2009" "23may2009"
> "03dec2008" "04mar2009"
> "02jun2009" "02sep2009"
> "01apr2009" "03jul2009"
> "01apr2009" "03jul2009"
> "17apr2008" "20jul2008"
> "05may2007" "08aug2007"
> "19dec2007" "27mar2008"
> "26jun2007" "04oct2007"
> "29nov2008" "09mar2009"
> "28jan2009" "08may2009"
> "01oct2007" "11jan2008"
> "01jul2009" "13oct2009"
> "25dec2007" "08apr2008"
> "30apr2007" "14aug2007"
> "19jun2007" "03oct2007"
> "01apr2007" "16jul2007"
> "19mar2008" "07jul2008"
> "07sep2007" "26dec2007"
> "09jan2008" "30apr2008"
> "10nov2008" "02mar2009"
> "09jan2008" "30apr2008"
> "12may2008" "03sep2008"
> "06jun2009" "30sep2009"
> "06jan2009" "02may2009"
> "02apr2008" "28jul2008"
> "19may2008" "15sep2008"
> "21aug2008" "19dec2008"
> "21nov2007" "24mar2008"
> "04apr2009" "08aug2009"
> "19jun2007" "24oct2007"
> "15may2009" "26sep2009"
> "13nov2008" "29mar2009"
> "20aug2007" "13jan2008"
> "14oct2008" "10mar2009"
> "29nov2008" "25apr2009"
> "18sep2007" "14feb2008"
> "30apr2009" "26sep2009"
> "10apr2007" "08sep2007"
> "05apr2008" "03sep2008"
> "05mar2008" "08aug2008"
> "21apr2009" "29sep2009"
> "26feb2009" "08aug2009"
> "03feb2009" "19jul2009"
> "28apr2007" "18oct2007"
> "04apr2007" "28sep2007"
> "29apr2007" "25oct2007"
> "09jan2008" "09jul2008"
> "07oct2007" "08apr2008"
> "20feb2009" "07sep2009"
> "12may2008" "07dec2008"
> "04may2007" "18dec2007"
> "05may2007" "06jan2008"
> "26jun2007" "16mar2008"
> "22may2007" "16feb2008"
> "10apr2007" "11jan2008"
> "24feb2007" "19dec2007"
> "02may2007" "04mar2008"
> "28apr2007" "10mar2008"
> "17apr2007" "08mar2008"
> end
>
> gen admi=date(var1, "DMY")
> gen discha=date(var2, "DMY")
> format admi discha %tdMonth_DD,_CCYY
> drop var1 var2
> gen patientid=_n
> expand 2
> bys patientid: /*
> */ gen days=day(admi) /*
> */ if _n==1
> bys patientid: /*
> */ replace days=day(discha) /*
> */ if _n==_N
>
> compress
> list, noobs sepby(patientid)
> *************
>
>
>
> HTH
> Martin
>
>
> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> [mailto:[email protected]] Im Auftrag von Rajaram
> Subramanian Potty
> Gesendet: Montag, 2. November 2009 06:34
> An: [email protected]
> Betreff: st: Creating number of days per month
>
> On Mon, Nov 2, 2009 at 10:33 AM, Rajaram Subramanian Potty
> <[email protected]> wrote:
>> Dear all,
>>
>> I have the following data indciating the date of visit and date of
>> discharge of patients. Now, I want to consturct variables to indicate
>> how may days the patient was there in the hospital or centre in a
>> month in a particular year. Some patients might have stayed in the
>> hospital ever for 2 years. The following is the 101 observations from
>> the data set. Var1 is the date of admission and var2 is the date of
>> discharge.
>>
>>
>> var1 var2
>> 24400. 30nov2007 14feb2008
>> 24401. 21jan2009 07apr2009
>> 24402. 24apr2008 09jul2008
>> 24403. 22feb2008 08may2008
>> 24404. 01oct2008 16dec2008
>> 24405. 13jul2009 28sep2009
>> 24406. 04oct2008 20dec2008
>> 24407. 07jul2009 22sep2009
>> 24408. 03jun2008 19aug2008
>> 24409. 11feb2009 30apr2009
>> 24410. 31mar2007 17jun2007
>> 24411. 01may2007 19jul2007
>> 24412. 04apr2007 22jun2007
>> 24413. 03jul2008 20sep2008
>> 24414. 10jul2007 27sep2007
>> 24415. 10jul2009 28sep2009
>> 24416. 08aug2007 27oct2007
>> 24417. 15jun2009 03sep2009
>> 24418. 12oct2007 31dec2007
>> 24419. 20dec2008 11mar2009
>> 24420. 04aug2009 24oct2009
>> 24421. 01nov2008 21jan2009
>> 24422. 04dec2008 23feb2009
>> 24423. 31jul2009 21oct2009
>> 24424. 03feb2009 26apr2009
>> 24425. 24jul2007 14oct2007
>> 24426. 16apr2009 07jul2009
>> 24427. 23nov2007 14feb2008
>> 24428. 15apr2008 07jul2008
>> 24429. 01oct2008 23dec2008
>> 24430. 30sep2008 23dec2008
>> 24431. 07jul2007 29sep2007
>> 24432. 14oct2008 07jan2009
>> 24433. 15apr2009 09jul2009
>> 24434. 02nov2007 27jan2008
>> 24435. 30apr2009 26jul2009
>> 24436. 15apr2008 11jul2008
>> 24437. 27mar2009 23jun2009
>> 24438. 01apr2007 29jun2007
>> 24439. 07jan2008 05apr2008
>> 24440. 09apr2009 07jul2009
>> 24441. 21feb2009 23may2009
>> 24442. 03dec2008 04mar2009
>> 24443. 02jun2009 02sep2009
>> 24444. 01apr2009 03jul2009
>> 24445. 01apr2009 03jul2009
>> 24446. 17apr2008 20jul2008
>> 24447. 05may2007 08aug2007
>> 24448. 19dec2007 27mar2008
>> 24449. 26jun2007 04oct2007
>> 24450. 29nov2008 09mar2009
>> 24451. 28jan2009 08may2009
>> 24452. 01oct2007 11jan2008
>> 24453. 01jul2009 13oct2009
>> 24454. 25dec2007 08apr2008
>> 24455. 30apr2007 14aug2007
>> 24456. 19jun2007 03oct2007
>> 24457. 01apr2007 16jul2007
>> 24458. 19mar2008 07jul2008
>> 24459. 07sep2007 26dec2007
>> 24460. 09jan2008 30apr2008
>> 24461. 10nov2008 02mar2009
>> 24462. 09jan2008 30apr2008
>> 24463. 12may2008 03sep2008
>> 24464. 06jun2009 30sep2009
>> 24465. 06jan2009 02may2009
>> 24466. 02apr2008 28jul2008
>> 24467. 19may2008 15sep2008
>> 24468. 21aug2008 19dec2008
>> 24469. 21nov2007 24mar2008
>> 24470. 04apr2009 08aug2009
>> 24471. 19jun2007 24oct2007
>> 24472. 15may2009 26sep2009
>> 24473. 13nov2008 29mar2009
>> 24474. 20aug2007 13jan2008
>> 24475. 14oct2008 10mar2009
>> 24476. 29nov2008 25apr2009
>> 24477. 18sep2007 14feb2008
>> 24478. 30apr2009 26sep2009
>> 24479. 10apr2007 08sep2007
>> 24480. 05apr2008 03sep2008
>> 24481. 05mar2008 08aug2008
>> 24482. 21apr2009 29sep2009
>> 24483. 26feb2009 08aug2009
>> 24484. 03feb2009 19jul2009
>> 24485. 28apr2007 18oct2007
>> 24486. 04apr2007 28sep2007
>> 24487. 29apr2007 25oct2007
>> 24488. 09jan2008 09jul2008
>> 24489. 07oct2007 08apr2008
>> 24490. 20feb2009 07sep2009
>> 24491. 12may2008 07dec2008
>> 24492. 04may2007 18dec2007
>> 24493. 05may2007 06jan2008
>> 24494. 26jun2007 16mar2008
>> 24495. 22may2007 16feb2008
>> 24496. 10apr2007 11jan2008
>> 24497. 24feb2007 19dec2007
>> 24498. 02may2007 04mar2008
>> 24499. 28apr2007 10mar2008
>> 24500. 17apr2007 08mar2008
>>
>> Thanks and regards,
>>
>> RAJARAM. S
>>
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/