如何生成组中某个变量随时间变化的累积总和

  • 本文关键字:变化 时间 何生成 变量 stata
  • 更新时间 :
  • 英文 :


我需要生成变量sum,它将TA_envi_tot在记者-合作伙伴对和年份中的变化累加起来。reporter_isopartner_iso为字符串变量。同时,idegen 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]))

最新更新