楼主: swufer1998
2596 16

[编程问题求助] 求助stata forvalue循环的问题 [推广有奖]

11
黃河泉 在职认证  发表于 2022-5-5 17:15:38
请据以更改:
  1. webuse grunfeld, clear

  2. keep invest
  3. gen n = _n

  4. tempfile a
  5. save `a', replace

  6. ren * *2
  7. cross using "`a'"
  8. keep if n < n2
  9. sort n n2

  10. gen tem = abs(invest2-invest)
  11. egen wanted = total(tem)
复制代码

12
swufer1998 发表于 2022-5-5 22:40:49
zdlspace 发表于 2022-5-5 14:54
如果跑一次0.1秒,那也得跑三个月才能跑完
哈哈哈哈哈哈哈哈,谢谢您!一两分钟就跑出来啦

13
swufer1998 发表于 2022-5-6 09:25:27
黃河泉 发表于 2022-5-5 17:15
请据以更改:
好的好的,谢谢您!

14
escaflowne1985 在职认证  发表于 2022-5-6 21:50:08
感谢分享~~~~~~么么哒

15
zhengyitaotc 发表于 2022-5-12 18:22:14
zdlspace 发表于 2022-5-5 12:53
生成太多中间变量的话,会占用大量内存,最好还是用临时变量tempvar储存。
兄弟,请问,为什么我运行你的代码会提示is not a valid command name呢?
还有这个`y`i'' 和`sum`i'' 为什么是双重引号的呢,小白看不懂

16
zdlspace 学生认证  发表于 2022-5-12 19:03:22
zhengyitaotc 发表于 2022-5-12 18:22
兄弟,请问,为什么我运行你的代码会提示is not a valid command name呢?
还有这个`y`i'' 和`sum`i'' 为 ...
去学习一下宏local.

17
swufer1998 发表于 2022-5-13 14:32:57
zdlspace 发表于 2022-5-5 14:12
我不是给你写了代码吗?
你好,我想再问一下,我现在使用的是跨年度面板数据,总共是13296个样本量,用
local n=_N
gen wanted2014        =0
forvalues i=1/4432 {
tempvar y`i' plus`i'
gen `y`i''=abs(fincome1_per-fincome1_per[`i']) if _n>`i'
egen `plus`i''=total(`y`i'')
replace wanted2014=wanted2014+`plus`i''
}
我现在是想让它们实现分年度进行这个循环,前4432个数据是2014年的,但是用这个代码一运行就是从1到13296所有一起进行循环了,想问问这个应该怎么让它们区分开呢?

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

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