Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: st: foreach question


From   "Martin Weiss" <[email protected]>
To   <[email protected]>
Subject   RE: st: foreach question
Date   Sun, 22 Aug 2010 23:24:05 +0200

<>


Maybe I am missing the point, but where is the relation to your original
question some posts ago? Anyway, -sort-ing within "id" is best accomplished
via -bysort-, as in NJC`s
http://www.stata-journal.com/sjpdf.html?articlenum=pr0004

I think you should separate "year_jobnum" and hold it as two numeric vars:

***
clear*

inp str6 year_jobnum
1997_1     
1997_2
1997_3
1998_1     
1998_2     
1998_3
1997_1     
1997_2
1997_3
1998_1     
1998_2
1998_3
1997_1
1997_2
1997_3
1998_1     
1998_2     
end

split year_jobnum, parse(_) destring
ren  year_jobnum1 year
ren year_jobnum2 jobnum
list, noo
***


HTH
Martin


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of David Torres
Sent: Sonntag, 22. August 2010 23:10
To: [email protected]
Subject: RE: st: foreach question

Martin,

I originally did have the date in long format (see my yet unanswered  
question of yesterday).

I'm using the NLSY97 employment data.  I've reshaped wide to long  
using the string option because I have several jobs per year for  
several years of data.  The year_jobnum is my string variable.

id        year_jobnum      stjob           endjob           employerid
1          1997_1          01Jan1996      06July1997          9701
1          1997_2
1          1997_3
1          1998_1          01Jan1996      25June1998          9701
1          1998_2          10June1997      19Aug1997          9801
1          1998_3
2          1997_1          15Sept1996      30June1997         9713
2          1997_2
2          1997_3
2          1998_1          22Jan1997      15July1998          9820
2          1998_2
2          1998_3
3          1997_1
3          1997_2
3          1997_3
3          1998_1          11Oct1997      30July1998          9816
3          1998_2          30May1997      25Aug1997           9846
3          1998_3

I hope this is more challenging for you, sir.  And, again, I  
appreciate your assistance.  While currently the data are odered in  
each year according to end date of job (most recent or current  
employer is listed in slot 1), I want to reorder according to begin  
job date.  This seems the easiest way to backfill data for missing  
years since jobs held since date of last interview are asked in all  
rounds, meaning that income information can be gathered for missed  
years as long as a job was worked.

Thanks,
D

Quoting Martin Weiss <[email protected]>:

>
> <>
>
> This new info makes my -reshape- solution more attractive. I seriously
doubt
> that you want to work in wide format with this kind of data. Take a look
at
> the long data, and see whether it facilitates your analysis:
>
>
> ***********
> clear*
>
> inp str10(Startjob1 Startjob2 Endjob1 Endjob2)
> 01Jan1997 05June1997 24Dec1997 02Sept1997
> end
>
> gen byte id=1
> reshape long Startjob Endjob, i(id) j(number)
> drop id
> list, noo
> ***********
>
>
> HTH
> Martin
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of David Torres
> Sent: Sonntag, 22. August 2010 22:39
> To: [email protected]
> Subject: Re: st: foreach question
>
> To complicate things a bit more, what if date1 and date2 and date3 and
> date4 represent, respectively, begin and end dates for employment.
>
> Startjob1         Startjob2          Endjob1             Endjob2
> 01Jan1997         05June1997         24Dec1997          02Sept1997
>
> Is there a way to sort both together so the correct start and end
> dates remain together?  The data I am using are currently sorted on
> endjob dates, such that the most recent employment (i.e., at time of
> interview) is listed in job#1 slot.  As you can see, however,
> sometimes a start date may precede another start date, while the end
> dates are actually reversed.
>
> Thanks in advance.
>
>
> Quoting Eric Booth <[email protected]>:
>
>> <>
>>
>> I think this is what you are asking:
>>
>> ******!
>> clear
>> inp  str12(Date1          Date2         Date3         Date4)
>> 23July1997    01Jan1997     12Sept1997     03Feb1997
>> 05July1997	04July1997	03July1997	02July1997
>> end
>>
>> ds
>> foreach v in `r(varlist)' {
>> 	g `v'2 = date(`v', "DMY")
>> 	format `v'2 %td
>> 	drop `v'
>> 	rename `v'2 `v'
>> 		}
>> 	g id = _n
>> reshape long Date, i(id) j(n)
>> sort Date
>> g new = _n
>> drop n id
>> g id = 1
>> reshape wide Date, i(id) j(new)
>> drop id
>> li
>> ******!
>>
>> ~ Eric
>> __
>> Eric A. Booth
>> Public Policy Research Institute
>> Texas A&M University
>> [email protected]
>> Office: +979.845.6754
>>
>> On Aug 22, 2010, at 2:54 PM, David Torres wrote:
>>
>>> Is there a way to sort or reorder dates using the foreach
>>> command--perhaps using the egen function in the loop or something?
>>>
>>> How do I get:
>>>
>>> Date1          Date2         Date3         Date4
>>>
>>> 23July1997    01Jan1997     12Sept1997     03Feb1997
>>>
>>> to be ordered thusly:
>>>
>>> Date1          Date2         Date3         Date4
>>> 01Jan1997     03Feb1997     23July1997     12Sept1997
>>>
>>> Thanks,
>>>
>>> --
>>> David Diego Torres
>>>
>>> *
>>> *   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/
>
>
>


*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index