想append一个文件夹下所有的dta数据文件。由于文件数较多,使用openall长时间无响应,且数据文件的命名规律性不强,因此,尝试使用forvalues循环append数据文件。以下是演示代码。
- *-----------------------------
- * 模拟生成文件夹下多个数据文件
- cls
- cd ".\myfolder"
- forval i = 1/10 {
- clear
- set obs 1
- gen v = `i'
- compress
- save data`i', replace
- }
- *----------------------------
复制代码然后,尝试使用宏函数所取的文件名是否能用来append,经尝试,可以成功执行如下代码。
- use `first', clear
- local f: word 2 of `r(files)'
- append using `f'
复制代码接着,尝试使用forvalues循环,经尝试,也可以成功执行如下代码。
- use `first', clear
- forval i = 2/`max' {
- local f: word `i' of `r(files)'
- dis "`i'"
- dis "`f'"
- }
复制代码然而,当循环中加入append命令时,出现错误:invalid file specification。代码如下:
- use `first', clear
- forval i = 2/`max' {
- local f: word `i' of `r(files)'
- dis "`i'"
- dis "`f'"
- append using `f'
- }
复制代码请问这是何缘故?如何解决呢?谢谢。