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: Transforming data - horizontal to vertical
From
Nick Cox <[email protected]>
To
"[email protected]" <[email protected]>
Subject
Re: st: Transforming data - horizontal to vertical
Date
Wed, 11 May 2011 13:43:34 +0100
-local- is the start of a new command.
If you don't have a variable -gdp-, don't mention it.
r(varlist) must be typed like that; don't change it
Nick
On 11 May 2011, at 12:48, lreine ycenna <[email protected]> wrote:
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 <[email protected]> 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 <[email protected]
> wrote:
On Wed, May 11, 2011 at 11:28 AM, lreine ycenna <[email protected]
> 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/