ritaing 发表于 2019-7-17 00:20 
local j=i-1
其他部分不知道你的数据,所以无法知道是否有问题。
help dataex上传部分数据,说明清楚问题 ...
谢谢您的回复和耐心指导,下面是我的数据和代码,想把第2个及后面的样本值进行赋值(第一列是第几个样本,第二列是变量),第n个样本的赋值需要根据第n-1个样本值的取值范围代入不同的式子。把命令改成 local j=i-1 好像还是有问题,期待您进一步解答,十分感谢~~
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(t x)
1 .2
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
end
*命令
forvalues i = 2(1)30{
local j = i - 1
if x[`j'] <0.85{
replace x[`i'] = 0.8*0.4*(x[`j']+0.1)*(1+1)+0.3
}
else if x[`j'] >= 0.85 & x[`j'] <1{
replace x[`i'] = 0.8*0.4*( x[`j']-1)*(1+3)+2+0.8
}
else if x[`j'] >=1{
replace x[`i'] = 0.8*0.4*( x[`j']-1)*(1+1)+2+0.8
}
}