全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5162 8
2010-04-07
我只看过一晚上stata.....所以多多包涵.....

我现在想把1000个.xls文件转换为.dta文件,打算用循环来实现

但是在这个循环中,我如何让第一次循环是转换第一个文件,第二次循环转换第二个文件,以此类推.....比方说文件名是1.xls到1000.xls

或者有什么更好的方法吗?

先谢过了
二维码

扫码加我 拉你入群

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

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

全部回复
2010-4-7 22:20:17
以下纯属个人见解,也请高手支招。

假如你的文档是以逗号分隔的.csv或以tab分隔的.txt文档,那还有办法直接用:
forvals i=1/1000 {
    insheet ... using ...
    save ...
}
完成打开、转换和合并工作。

但假如你的文档如假包换是.xls文档,那恐怕就没有太多办法了,见
http://www.stata.com/support/faqs/data/newexcel.html

有个间接的办法是:考虑用“autoit”、“鼠标精灵”或“按键精灵”这样的自动工具将1000个.xls文档逐一用excel打开,然后另存为.csv或.txt文档。然后再用
forvals i=1/1000 {
    insheet ... using ...
    save ...
}
二维码

扫码加我 拉你入群

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

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

2010-4-7 23:13:28
我不明白的是,如果我在第一次循环中insheet using 1.xls,怎么实现在第二次循环里insheet using 2.xls
二维码

扫码加我 拉你入群

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

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

2010-4-8 01:09:30
forvals i=1/1000 {
    insheet ... using `i'.xls
    save ...
}

可能是您需要的
二维码

扫码加我 拉你入群

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

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

2010-4-8 11:38:03
h3327156 发表于 2010-4-8 01:09
forvals i=1/1000 {
    insheet ... using `i'.xls
    save ...
}

可能是您需要的
.xls文档没办法直接用insheet命令导入Stata的。
二维码

扫码加我 拉你入群

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

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

2010-4-8 11:44:44
raphaello 发表于 2010-4-7 21:38
我只看过一晚上stata.....所以多多包涵.....

我现在想把1000个.xls文件转换为.dta文件,打算用循环来实现

但是在这个循环中,我如何让第一次循环是转换第一个文件,第二次循环转换第二个文件,以此类推.....比方说文件名是1.xls到1000.xls

或者有什么更好的方法吗?

先谢过了
      

我在2楼的帖子被你的思路给误导了。

事实上最简便的方法就是用论坛上下载并安装个Stat/Transfer,然后“开始→所有程序→StatTransfer9→StatTransfer Command Processor”打开dos界面,在ST: 提示符下输入
            copy c:\data\*.xls c:\data\*.dta /t1 /y
假定你1000个excel文档存在c:\data文件夹下,而目标文件夹也是c:\data。

关于此问题比较全面的讨论参见http://www.stata.com/statalist/archive/2007-09/msg00341.html
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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