楼主: frederick2012
6783 8

[数据管理求助] stata跑循环,有显示进度和提示完成的办法吗 [推广有奖]

  • 7关注
  • 32粉丝

已卖:4031份资源

教授

88%

还不是VIP/贵宾

-

威望
0
论坛币
105415 个
通用积分
175.5279
学术水平
78 点
热心指数
91 点
信用等级
62 点
经验
20850 点
帖子
475
精华
1
在线时间
2590 小时
注册时间
2013-8-26
最后登录
2025-12-26

楼主
frederick2012 发表于 2019-3-15 20:28:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
由于跑一次循环,需要太久时间,没有时间概念很不方面,stata有什么方法可以实现吗?另外,通常跑循环的时候都是去做其他工作去了,能让stata跑完循环后窗口提示一下吗?以以下循环为例吧(尽管这个循环不是很久)
  1. sysuse auto, clear
  2. tuples headroom trunk length
  3. forval i = 1/`ntuples' {
  4.   regress mpg `tuple`i''
  5. }
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 什么方法

沙发
黃河泉 在职认证  发表于 2019-3-16 07:50:59
根据我的经验,你若真的要跑"很多" (上万条) 回归或计算分组统计量,foreach/forvalues (甚至是 statsby) 都一定不是好选择 (我甚至想说是很差之选择),因为其速度会越来越慢,有不少好的其它选项。

藤椅
frederick2012 发表于 2019-3-16 10:05:57
黃河泉 发表于 2019-3-16 07:50
根据我的经验,你若真的要跑"很多" (上万条) 回归或计算分组统计量,foreach/forvalues (甚至是 statsby) 都 ...
求黄老师推荐其他方法 我遇到的实际问题及时foreach跑循环,跑几个小时都不出结果,也看不到进度条

板凳
黃河泉 在职认证  发表于 2019-3-16 10:31:27
frederick2012 发表于 2019-3-16 10:05
求黄老师推荐其他方法 我遇到的实际问题及时foreach跑循环,跑几个小时都不出结果,也看不到进度条
你要不要说说你的状况与附上一点资料!

报纸
frederick2012 发表于 2019-3-16 10:42:23
黃河泉 发表于 2019-3-16 10:31
你要不要说说你的状况与附上一点资料!
  1. sysuse auto, clear
  2. tuples headroom trunk length price rep78 weight length turn displacement gear_ratio mpg
  3. forval i = 1/`ntuples' {
  4.   logit foreign `tuple`i''
  5. }
复制代码
例子就是这个,我又把它变复杂了一些

地板
黃河泉 在职认证  发表于 2019-3-16 11:01:15
frederick2012 发表于 2019-3-16 10:42
例子就是这个,我又把它变复杂了一些
这个例子较特殊,我来问问看!

7
frederick2012 发表于 2019-3-16 11:04:52
黃河泉 发表于 2019-3-16 11:01
这个例子较特殊,我来问问看!
非常感谢黄老师!

8
哈论哈 发表于 2019-3-18 22:25:58
请问怎么输入,可以让循环语句有效?

9
赵安豆 发表于 2024-10-15 00:30:30
在Stata中,可以使用`di`或`display`命令来显示进度信息。对于你的循环示例,你可以在每次迭代开始时打印一个消息,并且在完成之后也可以打印一个提示。下面是一个修改后的例子:

```stata
sysuse auto, clear

// 生成元组列表的长度变量以跟踪进度
scalar ntuples = tuples(headroom trunk length)'

forval i=1/`ntuples' {
    scalar tuple_name = word("`tuples'", `i')
   
    // 在每次迭代开始时显示一个信息,包括当前索引和总数量
    display "正在处理第 `=`i'" 个回归(共 ``= ntuples''): `tuple_name'"
   
    // 执行你的回归命令
    regress mpg `tuple_name'
}

// 完成后显示完成提示
display "所有循环已完成"
```

这会在每次迭代开始时给出一个进度信息,并在最后告诉你所有操作都已执行完毕。

对于在完成后给出窗口提示,Stata本身没有直接的方法实现这个功能。但是你可以使用`beep`命令来播放一声蜂鸣声作为完成的信号:

```stata
//...你的循环代码

// 完成后播放一个蜂鸣声
beep
```

不过,请注意`beep`可能在某些操作系统或终端中不起作用,尤其是当Stata在后台运行时。对于更复杂的提示(如弹出窗口),你可能需要依赖于外部脚本或者使用其他编程语言来实现。

希望这能帮助到你!

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 14:44