全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
590 4
2023-08-12
各位老师好,我想要通过∑sa* 0.08*(1.08^(i-22)) * 1.053^(59-i)的式子来计算样本个体从第22岁到59岁(即i从22至59)的值,使用forvalue循环来做,但是只能计算出首个样本的值,不知道哪一步写错了。
我的forvalue语句是
gen t1=.
loc p11=0
loc s="sa"
forvalues i=22/24{
loc p11=`p11'+`s' * 0.08*(1.08^(`i'-22)) * 1.053^(59-`i')
replace t1=`p11'
}

出现的结果是这样的,i234是我用22、23、24的数据算出来后相加的值,用来测试i从22-24的t1是否正确,但只有首行的值是一样的,下面的变量都没有变化,希望大佬能够指出问题!非常感谢!
微信截图_20230812222211.png

以下是我的部分数据:
pid        sa        i22        i23        i24        i234        t1
100051502        124321.8        67218.21        68941.76        70709.49        206869.5        206869.5
100160601        195601.8        105757.8        108469.6        111250.8        325478.3        206869.5
103465551        130801.8        70721.81        72535.2        74395.07        217652.1        206869.5
103788501        49419.38        26720.04        27405.17        28107.86        82233.06        206869.5
103924503        156721.8        84736.22        86908.95        89137.38        260782.5        206869.5
106561501        157369.8        85086.58        87268.29        89505.94        261860.8        206869.5
107435501        109543.1        59227.68        60746.34        62303.94        182278        206869.5
108211501        85493.61        46224.62        47409.87        48625.51        142260        206869.5


二维码

扫码加我 拉你入群

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

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

全部回复
2023-8-14 09:32:59

因为loc s="sa"每次只能存储了sa的第一行数值
可以对每行数值做个循环 forv r=1/8 {

复制代码


二维码

扫码加我 拉你入群

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

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

2023-8-14 10:11:47
复制代码
二维码

扫码加我 拉你入群

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

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

2023-8-20 14:28:32
momingqimiao7 发表于 2023-8-14 09:32
因为loc s="sa"每次只能存储了sa的第一行数值
可以对每行数值做个循环 forv r=1/8 {
谢谢!
二维码

扫码加我 拉你入群

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

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

2023-8-20 14:29:03
蓝色 发表于 2023-8-14 10:11
谢谢老师!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群