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: Transforming data - horizontal to vertical


From   lreine ycenna <lreine.ycenna@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Transforming data - horizontal to vertical
Date   Wed, 11 May 2011 12:48:22 +0100

I tried the command ds gdp year, not local countries `r(gdp)', but
stata tells me option local is not allowed.
am i supposed to create a variable called ' countries'? also, my var
should be gdp?

I have data like this:

year	Afghanistan	Albania	       Algeria
1977	275,820,910	..	1,683,573,383
1978	390,555,036	..	1,980,500,369
1979	441,210,990	..	2,658,756,710
1980	371,168,398	..	3,772,614,849
1981	274,293,425	..	3,695,345,372

and I need it to be like this:

year	country	                 gdp
1977	Afghanistan	2,953,333,419
1978	Afghanistan	3,300,000,108
1979	Afghanistan	3,697,940,345
1980	Afghanistan	3,641,723,447
1981	Afghanistan	3,478,787,910
1977	Albania	..
1978	Albania	..
1979	Albania	..
1980	Albania	..
1981	Albania	..



On 11 May 2011 11:11, Nick Cox <njcoxstata@gmail.com> wrote:
> By the way, you don't have to number them with suffixes 1, 2, etc. As
> the country identifiers were valid variable names beforehand, you
> could do something like this
>
> ds var year, not
> local countries `r(varlist)'
>
> To rename all these variables type
>
> foreach var of local countries {
>    rename `var' country`var'
> }
>
> The subsequent -reshape- command would need to use the option -string-.
>
> Nick
>
> By the way, there was a small typo in Maarten's solution:
>
> label country `i' "`var'", add
>
> should be
>
> label def country `i' "`var'", add
>
> Nick
>
> On Wed, May 11, 2011 at 10:57 AM, Maarten Buis <maartenlbuis@gmail.com> wrote:
>> On Wed, May 11, 2011 at 11:28 AM, lreine ycenna <lreine.ycenna@gmail.com> wrote:
>
>>> regarding this command you show me, I have over 100 countries which
>>> line up side by side. Is there anyway that I can do this without
>>> renaming them one by one?
>>
>> I assume that your dataset consists of variables var year and than all
>> countries. To get a  list of the names of all variables except var
>> year type:
>>
>> ds var year, not
>> local countries `r(varlist)'
>>
>> To rename all these variables type
>>
>> local i = 1
>> foreach var of local countries {
>>    rename `var' c`i'
>>   label country `i' "`var'", add
>>   local i = `i' + 1
>> }
>>
>
> *
> *   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index