我需要生成变量sum,它将报告者-合作伙伴对和年份中的TA_envi_tot变化累加起来。reporter_iso和partner_iso是字符串变量。同时,由egen id =group(reporter_iso partner_iso)生成id。
我尝试了这些代码,但我无法生成下面"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发布于 2021-03-11 17:25:11
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]))https://stackoverflow.com/questions/66579133
复制相似问题