我需要生成变量sum
,它将TA_envi_tot
在记者-合作伙伴对和年份中的变化累加起来。reporter_iso
和partner_iso
为字符串变量。同时,id
由egen id =group(reporter_iso partner_iso)
生成。
我尝试了这些代码,但我无法生成"sum"中的值列如下:
bysort id (year): gen sum=TA_envi_tot[_n] + TA_envi_tot[_n+1] if TA_envi_tot[_n]!=TA_envi_tot[_n-1]
bysort id (year): replace sum = sum[_n-1] if missing(sum)
id reporter_iso partner_iso year TA_envi_tot sum
3271 ATG DEU 1981 0 0
3271 ATG DEU 1982 0 0
3271 ATG DEU 1983 0 0
3271 ATG DEU 1984 36 36
3271 ATG DEU 1985 36 36
3271 ATG DEU 1986 36 36
3271 ATG DEU 1987 67 103
3271 ATG DEU 1988 67 103
3271 ATG DEU 1989 67 103
4217 BDI BEL 1981 3 3
4217 BDI BEL 1982 3 3
4217 BDI BEL 1983 3 3
4217 BDI BEL 1984 35 38
4217 BDI BEL 1985 35 38
4217 BDI BEL 1986 35 38
4217 BDI BEL 1987 35 38
4217 BDI BEL 1988 36 74
4217 BDI BEL 1989 36 74
4217 BDI BEL 1990 36 74
clear
input id str3 (reporter_iso partner_iso) year TA_envi_tot sum
3271 ATG DEU 1981 0 0
3271 ATG DEU 1982 0 0
3271 ATG DEU 1983 0 0
3271 ATG DEU 1984 36 36
3271 ATG DEU 1985 36 36
3271 ATG DEU 1986 36 36
3271 ATG DEU 1987 67 103
3271 ATG DEU 1988 67 103
3271 ATG DEU 1989 67 103
4217 BDI BEL 1981 3 3
4217 BDI BEL 1982 3 3
4217 BDI BEL 1983 3 3
4217 BDI BEL 1984 35 38
4217 BDI BEL 1985 35 38
4217 BDI BEL 1986 35 38
4217 BDI BEL 1987 35 38
4217 BDI BEL 1988 36 74
4217 BDI BEL 1989 36 74
4217 BDI BEL 1990 36 74
end
bysort id (year) : gen wanted = sum(TA_envi_tot * (TA_envi_tot != TA_envi_tot[_n-1]))