我是rookie,在world bank的data bank里下载了Data set:
平板panel数据(cross section + time):
country (10) variables(20) year (20)
每一国家有20个变量, 每个变量有20个值(按年份)
基本是wide的
参见附件:
big.xls
(88.5 KB)
如果一个变量一个变量地reshape long var, i(...) j(...)
很麻烦,有没有便捷一点的方法?
用个循环?
先变量名都整理出来,然后每次keep if var="变量名"
一个个单独存成一个tab`i'.dta
keep if var=="varname"
save tab1.dta
br
foreach i of numlist 3/25{
rename v`i' varname`i+1975'
}
drop var
reshape long varname, i(id) j(year)
* 年份是从1990-2012, 原来有
foreach i of numlist 3/25{
replace year=1985+`i' if year==`i'
}
label var varname "indicator name"
想是把上述步骤,做成个循环。
之后, merge
use tab1.dta,clear
foreach i of numlist 2/10 {
merge 1:1 id year using tab`i'.dta
drop _merge
}
save work.dta
有没有办法把那些个变量名(重新起名字)和标签名(原变量名)分别存在两个向量里,然后loop的时候,按着index提取。
或者Stata 有没有做类似事情的ado-file?或是有没有相关帖子?
各位一般都怎么搜集、整理数据呢?
麻烦各位答疑解惑,先谢谢了。


雷达卡





京公网安备 11010802022788号







