楼主: 逍遥梦蝶
2241 2

[编程问题求助] 使用forvalues循环append数据出错的问题 [推广有奖]

  • 3关注
  • 18粉丝

院士

7%

还不是VIP/贵宾

-

威望
0
论坛币
17967 个
通用积分
1001.6930
学术水平
111 点
热心指数
117 点
信用等级
87 点
经验
90188 点
帖子
704
精华
0
在线时间
5116 小时
注册时间
2009-5-22
最后登录
2026-1-22

楼主
逍遥梦蝶 发表于 2021-1-7 15:53:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

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



二维码

扫码加我 拉你入群

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

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

关键词:forvalues forvalue values append value

沙发
黃河泉 在职认证  发表于 2021-1-8 10:39:51

藤椅
逍遥梦蝶 发表于 2021-1-8 15:30:28
黃河泉 发表于 2021-1-8 10:39
请参考 https://www.statalist.org/forums/forum/general-stata-discussion/general/1506565-appending-mul ...
谢谢黄老师,我学习一下。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-29 12:20