Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


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

Re: st: reshaping with multiple identifiers


From   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: reshaping with multiple identifiers
Date   Sun, 1 Apr 2012 13:07:45 +0100

Thanks for this, but despite the detail I am little closer to
understanding your situation.

Any way, what you show us suggests major oddities about your data that
need to be clarified before it seems sensible to proceed further.

By the way, I have worked quite a lot with climatic data, and I have
never seen monthly average temperatures quoted to 5 decimal places
before!

Do these come from meteorological observations, so that you have
different thermometers for each household in each kebele (which seems
extraordinary),  or are they predictions from some model?

These data are from Ethiopia, I guess, and it can get cold in
mountainous areas, but

1. Consider

. sort crop mavg

. l if both == "1990_10", sep(0)

     +-------------------------------------------+
     | hhid   kebele   crop      both       mavg |
     |-------------------------------------------|
  1. |   19        1      2   1990_10   .3813828 |
  2. |   25        1      3   1990_10   .0508326 |
  3. |   14        1      5   1990_10   12.61545 |
  4. |   21        1     12   1990_10   17.74057 |
  5. |   24        1     12   1990_10   17.88119 |
 10. |   12        1     12   1990_10   18.11545 |
 12. |    9        1     12   1990_10   18.11545 |
 13. |   10        1     12   1990_10   18.11545 |
 14. |   17        1     12   1990_10   18.36091 |
 15. |   11        1     29   1990_10   12.95125 |
 16. |   13        1     42   1990_10   18.11545 |
     +-------------------------------------------+

That is, for the same kebele, for the same month, you have monthly
average temperatures that are variously near 0, near 12, and near 18.
(I guess these are all Celsius temperatures.)

Is that right?

Also, in principle different households and different crops could be
experiencing different temperatures, but how can the pattern here
arise of (a) several ties to 5 d.p. and (b) quite different values in
other cases?

2. Consider

. tab mavg

       mavg |      Freq.     Percent        Cum.
------------+-----------------------------------
   .0508326 |          1        5.88        5.88
   .3813828 |          1        5.88       11.76
   12.61545 |          1        5.88       17.65
   12.95125 |          1        5.88       23.53
   17.74057 |          1        5.88       29.41
   17.88119 |          1        5.88       35.29
   18.01798 |          1        5.88       41.18
   18.08271 |          1        5.88       47.06
   18.10748 |          1        5.88       52.94
   18.11545 |          7       41.18       94.12
   18.36091 |          1        5.88      100.00
------------+-----------------------------------
      Total |         17      100.00

One particular average recurs repeatedly. Not impossible, but it seems strange.

Nick

On Sun, Apr 1, 2012 at 12:01 PM, Mintewab Bezabih
<Mintewab.Bezabih@economics.gu.se> wrote:
> Dear Eric and Nick,
>
> Thanks  and apologies for not being clear about my problem.
>
> First the variables I have are the following :
> s25q3 (crop- I have now renamed it as crop), kebele (village) hhid (household id) year, mo(month) and mavg (monthly average temperature)
>
> What I want to do is have a montly average temperature variable for each crop within a houshold and kebele  for a particular year and month.
> So that entailed me creating  i(kebele hhid s25q3)  j(both) .
>
> My problem is when I run the command I end up with too few observations in the cells and many of them are just empty. To put this in perspective, I have a total of
> 28430 observations of mavg in the long form but when I do the summary of mavg1-mavg325 in the wide form, I end up with 5312 total data points. That is 75 percent of my observations gone and I just could not figure out what went wrong. In the example you did for me , eric, you have all the values you created in the long form in the wide form as well.
> Here is an example of what my data looks like:
>
> hhid    kebele  crop    both    mavg
> 1       1       42      1990_1  18.11545
> 2       1       12      1990_2  18.08271
> 3       1       12      1990_3  18.11545
> 4       1       12      1990_4  18.10748
> 6       1       12      1990_7  18.11545
> 7       1       12      1990_8  18.01798
> 9       1       12      1990_10 18.11545
> 10      1       12      1990_10 18.11545
> 11      1       29      1990_10 12.95125
> 12      1       12      1990_10 18.11545
> 13      1       42      1990_10 18.11545
> 14      1       5       1990_10 12.61545
> 17      1       12      1990_10 18.36091
> 19      1       2       1990_10 .3813828
> 21      1       12      1990_10 17.74057
> 24      1       12      1990_10 17.88119
> 25      1       3       1990_10 .0508326
>
>
> Mnay thanks in advance
> mintewab
> ________________________________________
> Från: owner-statalist@hsphsun2.harvard.edu [owner-statalist@hsphsun2.harvard.edu] f&#246;r Eric Booth [eric.a.booth@gmail.com]
> Skickat: den 31 mars 2012 21:53
> Till: statalist@hsphsun2.harvard.edu
> Ämne: Re: st: reshaping with multiple identifiers
>
> <>
>
> Mintewab:
>
> Running the commands you gave yesterday (with some clean-up and adding vars you forgot to include (like 'mavg')) gives:
>
> **********************!
> clear
> inp str11(s25q3)        hhid    kebele  year    mo
> "maize" 1       1       2006    1
> "potatoes"      1       1       2005    1
> "grass" 1       1       2004    1
> "sinar/ge"      1       1       2003    1
> "sinar/ge"      1       1       2002    1
> end
> g mavg = runiform()
>
> egen both=group(year mo ), label //labels won't help you here
> drop year mo
> **you don't need 'new' since i() takes a varlist
> reshape wide mavg , i(kebele hhid s25q3)  j(both)
> list, noobs
>
> /* which gives:
>  +--------------------------------------------------------------------------------+
>  |    s25q3   hhid   kebele      mavg1      mavg2      mavg3     mavg4      mavg5 |
>  |--------------------------------------------------------------------------------|
>  |    grass      1        1          .          .   .3713805         .          . |
>  |    maize      1        1          .          .          .         .   .1650207 |
>  | potatoes      1        1          .          .          .   .760604          . |
>  | sinar/ge      1        1   .9678735   .3795409          .         .          . |
>  +--------------------------------------------------------------------------------+
> */
> **********************!
> I'm not sure what you expected here, but you got what you asked for.  The reason 'mavg*' is missing in the wide version is that there was no data in the long version of the data.  That is, the 'mavg*' vars are non-missing in only 'mavg3' in the first observation because for the i() grass, hhid==1, kebele==1, you only have one observation in the original, long dataset (in 2004, month 1, which become the 3rd 'mavg' var in your wide data since it's the 3rd "group" of your j() var 'both').
>
> If you expected something else, please describe with more detail (or better give an example of what you are trying to get -reshape- to do for you) so that others can give advice.
>
> - Eric
>
> __
> Eric A. Booth
> Public Policy Research Institute
> Texas A&M University
> ebooth@ppri.tamu.edu
> +979.845.6754
>
> On Mar 31, 2012, at 11:35 AM, Nick Cox wrote:
>
>> You asked the same question yesterday and there were no answers. When
>> that happens it is best to assume that the original question was not
>> clear enough. Actually this version is even less informative than
>> yesterday's!
>>
>> In this case, I see only that you want to -reshape- and that your
>> attempts to do that don't satisfy. But you don't explain what most of
>> these variables are. I can guess at -hhid- and -year-. Perhaps -mo-
>> means "month". Why should have to guess?
>>
>> Nor do you show us the structure you want. What would a typical
>> observation look like in the ideal structure?
>>
>> Nick
>>
>> On Sat, Mar 31, 2012 at 2:00 PM, Mintewab Bezabih
>> <Mintewab.Bezabih@economics.gu.se> wrote:
>>
>>> I was trying to reshape wide my data using the command below:
>>>
>>>
>>> egen both=group (  year mo ), label
>>> egen new=group ( kebele hhid s25q3 ), label
>>>
>>> reshape wide mavg , i(new)  j( both)
>>>
>>> my variables are : s25q3   hhid    kebele  year    mo
>>>
>>> but while my code runs fine, I just end up with almost no observations in the reshaped file. I would appreciate any suggestion on how I could do this right
>>>

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index