do文件:
clear //相当于让STATA 处于初始状态,清除所有使用过的痕迹
version 9 //由于不同版本命令等略有不同,因此最好事先指明版本号
cd D:\mi\
capture log close /*如某结果输出文件已被打开,则关闭之,
若没有,则忽略该命令*/
log using myfile.txt,text replace //将运行结果存到一个输出文件 myfile 中
set more off //在程序执行过程中,不要因为结果窗口屏幕已满而停下来
foreach file in 40{
insheet using "`file'.csv", clear /*修改csv文件*/
drop in 1
rename v1 prov
local i=2
local j=1997
while `i'<=12{
rename v`i' x`j'
local ++i
local ++j
}
reshape long x ,i(prov) j(year)
set obs 341
gen id=_n
order id
rename x score`file'
save `file',replace/*修改文件名*/
/*以上是csv转换成dta的程序*/
}
. foreach file in 40{
2. insheet using "`file'.csv", clear /*修改csv文件*/
3.
. drop in 1
4. rename v1 prov
5. local i=2
6. local j=1997
7. while `i'<=12{
8. rename v`i' x`j'
9. local ++i
10. local ++j
11. }
12.
. reshape long x ,i(prov) j(year)
13.
. set obs 341
14. gen id=_n
15. order id
16. rename x score`file'
17. save `file',replace/*修改文件名*/
18. /*以上是csv转换成dta的程序*/
.
. }
窗口报错
(12 vars, 32 obs)
(1 observation deleted)
(note: j = 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007)
x2000 type mismatch with other x variables
r(198);
end of do-file
原数据是这样的:地区 1997 1998 ……2007
我想读到stata中变成面板形式:地区 年份 变量
bj 1997
。。。。。。
bj 2007
tj 1997
请高手帮我试试,为什么老出错,以下是数据,由于不能上传cav格式,就转换成xls了