楼主: yangye823
1867 2

[编程问题求助] 关于批量reshape的问题 [推广有奖]

已卖:3623份资源

教授

55%

还不是VIP/贵宾

-

威望
0
论坛币
13984 个
通用积分
153.8831
学术水平
5 点
热心指数
6 点
信用等级
5 点
经验
29884 点
帖子
419
精华
0
在线时间
2365 小时
注册时间
2009-11-3
最后登录
2025-12-22

楼主
yangye823 学生认证  发表于 2020-7-20 14:17:39 |AI写论文
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文件都变成长数据,怎么用循环跑出来呢?

在线等啊,感谢大佬了~



关键词:reshape Shape APE RES EXCEL
微信:Thesis_Guidance

沙发
蓝色 发表于 2020-7-20 16:09:01
不同的文件格式,命令也是不同的
你现在这样问,没有办法回答。

藤椅
yangye823 学生认证  发表于 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  
}

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-24 16:22