全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4151 10
2014-11-29
本人最近在学stata基本操作,尝试着用foreach命令批量导入指定硬盘数据,但是鼓捣很长时间也操作不成功?现把操作命令复制如下: do "C:\Users\inm\AppData\Local\Temp\STD00000000.tmp"
. foreach file  in D:\data\d3-d9 {
  2. local varname  id time mar mat maw max
  3. insheet `varname' using `file'.txt, clear
  4. save `file'.dta,replace
  5. }
file D:\data\d3-d9.txt not found
r(601);
请求各位高手指点


二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-29 11:17:12
必须先用宏扩展函数获得指定文件夹下的文件名列表,然后再用foreach循环。
help extended_fcn
二维码

扫码加我 拉你入群

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

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

2014-11-29 18:35:53
谢谢啊
二维码

扫码加我 拉你入群

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

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

2015-9-27 09:42:10
如果直接放在更改过后的默认目录下,是否可以呢?期待答复
二维码

扫码加我 拉你入群

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

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

2015-9-28 16:30:19
玄一无相 发表于 2015-9-27 09:42
如果直接放在更改过后的默认目录下,是否可以呢?期待答复
cd "你的工作路径"
local myfilelist: dir . files "*.xlsx" //后缀名,看你要处理什么文件

foreach filename of local myfilelist {
import excel `"`filename'"', sheet("1") firstrow allstring clear  //因为我一般处理Excel,所以这样写

save `"`filename'"'.dta, replace
}
二维码

扫码加我 拉你入群

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

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

2015-9-28 22:11:29
天斯吾下 发表于 2015-9-28 16:30
cd "你的工作路径"
local myfilelist: dir . files "*.xlsx" //后缀名,看你要处理什么文件
你这个好像会提示invalid '.dta'

我尝试过,直接默认地址是可以的,用楼主的方法也可以,只要是在同一个目录下,默认目录下,

但是我发现只能手动写file1 file2 file3,而不能file1-file3,就像楼主遇到的,不晓得你这个是不是是针对这个问题的,谢谢
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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