我的数据主要变量为stock,fundcode,rank,hi,这里只列出了第一期和股票1的前10个值,
诉求:我需要按不同期,同一只股票中,不同排名(rank数值越大,排名越靠后)的基金,对变量hi做加乘,
计算逻辑是:比如在持有股票1的基金中,第三个基金110005的排名是0.2752,需要将110005的hi值分别乘以‘排在0.2752之前的基金’对应的hi值后相加,这里排在110005前面的只有2个基金,那么生成的新变量=hi(110005)*hi(257040)+hi(110005)*hi(530001)=0.3359*0.9881+0.3359*0.2213我试过写循环语句,但是不太熟悉,没做出来,特来请教大家,这个用stata语法要怎么做?
input float stock long fundcode float(rank hi)
1 530001 .27027026 .22134387
1 257040 .2742616 .9881423
1 110005 .27521008 .3359684
1 519694 .28442436 .8735178
1 519991 .28503564 .8577075
1 350005 .2857143 .03773585
1 233001 .2915601 .770751
1 70001 .29275972 .8
1 360006 .2939189 .7865613
1 166001 .29411766 .9130435
1 360007 .29493892 .9644269
end
[/CODE]