全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
17657 8
2010-06-17
因为一个文件夹下文件特别多,foreach命令需要指定list,现在想不指定list,而项编程一样,用一个数组或什么的获得该目录下所有的文件(只有一种类型),然后依次读取文件,进行处理,然后保存


        foreach file in this.dta that.dta theother.dta {
                append using "`file'"
        }


现在不想指定  this.dta that.dta theother.dta,用变量替换
二维码

扫码加我 拉你入群

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

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

全部回复
2010-6-17 18:40:10
提供一个笨办法,把文件夹下的所有文件重新按数字命名,然后循环就比较方便了
二维码

扫码加我 拉你入群

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

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

2010-6-17 19:28:56
danshenyazi 发表于 2010-6-17 15:45
因为一个文件夹下文件特别多,foreach命令需要指定list,现在想不指定list,而项编程一样,用一个数组或什么的获得该目录下所有的文件(只有一种类型),然后依次读取文件,进行处理,然后保存


        foreach file in this.dta that.dta theother.dta {
                append using "`file'"
        }


现在不想指定  this.dta that.dta theother.dta,用变量替换
可以使用暂元的扩展功能,把符合要求的文件名称统一存储于一个暂元中,然后使用foreach语句从这个暂元中依次读取文件名称:
cd D:\stata10\ado\personal   // 进入指定的工作路径,或存储待合并文件的路径
local ff : dir . files "*.dta"         // 将所有 .dta 结尾的文件名称存储于暂元 ff 中
dis `"`ff'"'                                 // 显示 ff 中的内容
use file1.dta, clear
foreach f of local ff{
   append using "`f'"
}
二维码

扫码加我 拉你入群

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

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

2011-4-23 19:26:04
infile using 无法运行,不知何故?
cd D:\stata_data
forval i=1/4{
clear
set obs `i'
gen x=`i'+_n
outfile using file`i'.csv,replace
}
local ff: dir . file "*.csv"         // 将所有 .dta 结尾的文件名称存储于暂元 ff 中
dis `"`ff'"'                                 // 显示 ff 中的内容
foreach f of local ff{
infile using "`f'",clear
}
二维码

扫码加我 拉你入群

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

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

2011-4-23 21:22:44
help infile
help insheet
二维码

扫码加我 拉你入群

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

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

2011-4-24 11:26:01
5# voodoo
good.
thank you
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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