楼主: SpencerMeng
13002 27

[编程问题求助] 如何一下跑通全部的do文件 [推广有奖]

11
ywh19860616 发表于 2014-5-11 21:41:33
voodoo 发表于 2014-5-11 21:31
若do文档间存在依赖关系,用这种方法可能行不通。
我没有看清楼主的题意,谢谢提醒。
如果存在调用关系,可以想着整合在一个文件中去,写成ado文件。
一份耕耘,一份收获。

12
SpencerMeng 在职认证  发表于 2014-5-11 21:43:46
voodoo 发表于 2014-5-11 21:39
1. 若你试用Stata 12以上的版本,已经无需set memory
2. 假如你用Stata 11及以下的版本,由于第一个do文 ...
对的 对的 我用的stata11 呵呵  我就留了第一个set mem 30m ,剩下的do文件中的set mem 30m 我就在前面加个capture  就能把所以的do文件都跑通了  谢谢您~!
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

13
ywh19860616 发表于 2014-5-11 21:44:10
SpencerMeng 发表于 2014-5-11 21:19
对  您说的对 按道理说master.do中就是您的_main_.do  我从别人的master.do中也是这么看到的。
我读懂您 ...
Stata 12版本之后会自动分配内存。
或者看看 permanently选项
一份耕耘,一份收获。

14
SpencerMeng 在职认证  发表于 2014-5-11 21:44:48
ywh19860616 发表于 2014-5-11 21:41
我没有看清楼主的题意,谢谢提醒。
如果存在调用关系,可以想着整合在一个文件中去,写成ado文件。
有道理 有道理  可以写成个ado ~~
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

15
voodoo 发表于 2014-5-11 22:00:10
SpencerMeng 发表于 2014-5-11 21:44
有道理 有道理  可以写成个ado ~~
显然ado文档不同于do文档。个人认为,在此案例中,用ado文档并不是个好的解决方案。

若do文档和ado文档均命名为_main_,则两者的差别只体现在调用上的不同:

  1. // 执行do文档
  2. do _main_.do
  3. // 执行ado文档
  4. _main_
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
crystal8832 + 24 + 2 + 2 + 2 补偿

总评分: 论坛币 + 24  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

巫毒上传,必属佳品!
坛友下载,三思后行!

16
SpencerMeng 在职认证  发表于 2014-5-11 22:06:12
voodoo 发表于 2014-5-11 22:00
显然ado文档不同于do文档。个人认为,在此案例中,用ado文档并不是个好的解决方案。

若do文档和ado文档 ...
哦~
老师  您看那了ywh19860616回复的循环语句跑通所以do文件吗
我试了  发现把所以的do文件跑了一遍后 它又开始第一个do文件的run了  怎么停止呢
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

17
ywh19860616 发表于 2014-5-11 22:31:14
SpencerMeng 发表于 2014-5-11 22:06
哦~
老师  您看那了ywh19860616回复的循环语句跑通所以do文件吗
我试了  发现把所以的do文件跑了一遍后 ...
重复运行吗
我这里不会出现这种情况。
dof1.do
  1. scalar a=1
  2. scalar b=1
  3. scalar c1=a+b
  4. scalar list c1
复制代码


dof2.do
  1. scalar a=1
  2. scalar b=1
  3. scalar c=1
  4. scalar d2=a+b+c
  5. scalar list d2
复制代码
dof3.do
  1. scalar a=1
  2. scalar b=1
  3. scalar c=1
  4. scalar d1=a+c
  5. scalar list d1
复制代码

然后运行,

. cd "C:\Users\Administrator\Desktop\fff"
C:\Users\Administrator\Desktop\fff
.
.
.
. local ff : dir . files "*.do"
.
. foreach f of local ff {
  2.
.      do "`f'"
  3.
. }
. scalar a=1
. scalar b=1
. scalar c1=a+b
. scalar list c1
        c1 =          2
.
end of do-file

. scalar a=1
. scalar b=1
. scalar c=1
. scalar d2=a+b+c
. scalar list d2
        d2 =          3
.
end of do-file

. scalar a=1
. scalar b=1
. scalar c=1
. scalar d1=a+c
. scalar list d1
        d1 =          2
.
end of do-file

.




一份耕耘,一份收获。

18
SpencerMeng 在职认证  发表于 2014-5-12 09:37:53
ywh19860616 发表于 2014-5-11 22:31
重复运行吗
我这里不会出现这种情况。
dof1.do
对 您给出的例子是正确的 f1 f2 和f3的do文件能按照您给出的循环语句跑通
但是您的这个例子理想化了
您想下 如果我的小do文件们都是英文命名  且不表明序号  那么您的循环语句首先run的是小do文件命名靠前的,比如compute.do
好  这不是个大问题  
我把我的小do文件按照我的顺序前面加了一个序号 这个循环语句就能按照我的小do文件run下去

问题是 针对我的情况 您的循环语句确实会循环完毕后 又循环了
我这有所有的do文件 放在压缩包了 您要是有时间的话 run下吧  您解压后把里面的文件夹放在c盘  
然后在stata中打开master.do就能看出问题了  
麻烦您了~~谢谢 Empirical_Exercise.zip (25.25 KB, 需要: 1 个论坛币)
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

19
ywh19860616 发表于 2014-5-12 12:05:18
SpencerMeng 发表于 2014-5-12 09:37
对 您给出的例子是正确的 f1 f2 和f3的do文件能按照您给出的循环语句跑通
但是您的这个例子理想化了
您 ...
没有这个问题啊
你是不是把master.do这个文件也放在那个文件夹下?
你把这个文件移除了,就可以。

还有,为什么每个do文件中都加入exit,那样每次运行完一个
都会关闭Stata吧,没有必要。

还有,在导入数据时最好加入clear选项。
一份耕耘,一份收获。

20
SpencerMeng 在职认证  发表于 2014-5-12 12:14:53
ywh19860616 发表于 2014-5-12 12:05
没有这个问题啊
你是不是把master.do这个文件也放在那个文件夹下?
你把这个文件移除了,就可以。
就是呢~~把master从这个文件夹中移除 就能顺利跑通了  谢谢~!!  这个原理是啥咧。。

关于那个exit的问题  我觉得是个摆设。。跑的时候根本就没有关闭stata  我也不清楚作者为啥这样写

您说的 导入数据时最好加入clear选项   我看了下 我的只要导入数据后面都有clear 呢  不知道您指的是哪个
嘿嘿~~
谢谢您 ~!谢谢~!
有问题来发帖,来发帖没问题!
我尊重版规,一切为了学术!
Stata专版版规:https://bbs.pinggu.org/thread-1651470-1-1.html

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

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