全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
35965 37
2013-02-06
      是这样,我的“实证数据”这个文件夹里包含了上千个以基金名字命名的文件夹,每个文件夹里对应这支基金的几个excel表,我想要把所有以“基金名字+详细数据”命名的表都转换成stata的格式。   
      想到了用foreach这个循环语句,下面是我编的程序,但是跑不出来,恳请各位老师、朋友帮帮忙!


local corp "新华 兴全 中邮"
foreach c of local corp {
import excel "C:\Users\shichu\Desktop\实证数据\"`c'"\"`c'"详细数据.xlsx", sheet("Sheet2")
save "C:\Users\shichu\Desktop\stata数据\"`c'".dta"
}

二维码

扫码加我 拉你入群

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

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

全部回复
2013-2-6 20:32:27
怎么没有人呢...自己顶一下
二维码

扫码加我 拉你入群

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

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

2013-2-6 20:54:30
你把Do文件放在和那些excel文档相同的路径下,这样可以省去那些文件夹路径。
比如你有三个excel文档,文件名分别叫1、2、3,每个excel文档中都有一个sheet,叫“sheet1”,那么命令如下:
foreach file in 1 2 3 {
import excel "`file'", sheet("Sheet1") firstrow
save `file'.dta, replace
clear
}
我试过了,按我这个写肯定没问题。Import命令后面不能加clear参数,所以要单写一行clear。如果不clear,下一个import是无法执行的。
二维码

扫码加我 拉你入群

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

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

2013-2-6 21:28:53
xingxf 发表于 2013-2-6 20:54
你把Do文件放在和那些excel文档相同的路径下,这样可以省去那些文件夹路径。
比如你有三个excel文档,文件 ...
确实好使了!不过最后出现这么几行是什么意思呢:

(note: file 新华.dta not found)
file 新华.dta saved
(note: file 兴全.dta not found)
file 兴全.dta saved
(note: file 中邮.dta not found)
file 中邮.dta saved

.
end of do-file
二维码

扫码加我 拉你入群

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

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

2013-2-6 21:40:47
xingxf 发表于 2013-2-6 20:54
你把Do文件放在和那些excel文档相同的路径下,这样可以省去那些文件夹路径。
比如你有三个excel文档,文件 ...
按照您说的方法确实可以解决您举出的例子,但是对于我的数据却有一个问题,就是我的这些excel并不是放在一个文件夹里,而是分布在各个以file名称命名的文件夹里,这样路径里就必然有...\`file'\`file'详细数据\这一部分,stata可以识别\`file'详细数据\,但是好像stata不能识别\`file'\,怎么办呀?
二维码

扫码加我 拉你入群

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

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

2013-2-6 21:55:02
shichu 发表于 2013-2-6 21:40
按照您说的方法确实可以解决您举出的例子,但是对于我的数据却有一个问题,就是我的这些excel并不是放在一 ...
最简单的办法,你把那些文件都放在相同文件夹下。
foreach file in 1 2 3 {
import excel "`file'", sheet("Sheet1") firstrow
save `file'.dta, replace
clear
}
你看这个语法,foreach后面这个循环是对每个文件进行相同的操作,你要是在不同的文件路径,那就等于第二行那个import后面的命令不一样,那怎么能用循环呢。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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