全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1811 2
2020-07-20
悬赏 30 个论坛币 未解决
问题如下:1、我们按照下面的命令,能将宽数据变成长数据。
clear
webuse reshape1
drop ue*
reshape long inc, i(id) j(year)

2、我的问题是,怎么用循环语句把inc80的前缀inc提取出来呢?并把它作为暂元处理。

3、PS:通俗地讲,假设文件夹中有各不相同的26个Excel文件(宽数据),Excel1中有变量a2000、a2001、a2002、……、a2020;Excel2中有变量b2000、b2001、b2002、……、b2020;……;Excel26中有变量z2000、z2001、z2002、……、z2020。我现在要将这26个Excel文件都变成长数据,怎么用循环跑出来呢?

在线等啊,感谢大佬了~



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-7-20 16:09:01
不同的文件格式,命令也是不同的
你现在这样问,没有办法回答。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-7-20 17:12:27
蓝色 发表于 2020-7-20 16:09
不同的文件格式,命令也是不同的
你现在这样问,没有办法回答。
文件格式一样啊,都是.xls。我的命令已经写成这样了,就被卡在了三个问号那里,不知道怎么用暂元表示前缀。当然,我先不reshape,先merge再统一reshape可以实现我要的结果。我只是想看看有没有大佬会直接提取前缀作为暂元的命令,以后可能也会用到。

clear
set more off
global dir0 E:\aa

cd $dir0
local files: dir "." file "*.xls"
foreach file in `files'{
  import excel using "`file'", firstrow clear
  reshape long ???,i(id) j(year)
save "`file'.dta",replace  
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群