I have a database of donations and I want to use it to generate a new var to indicate donors ideology. Firstly, calculate donor's ideology using the variable "dwnom1" of his recipients/candidates. Then calculate candidates' ideology using the donors index we got last step. Here is my code.
Code:
bysort donorid: egen donorave = sum(dwnom1*amount) bysort donorid: egen donortotal = sum(amount) gen donorindex = donorave/donortotal bysort candid: egen candave = sum(donorindex*amount) bysort candid: egen candtotal = sum(amount) gen candindex = candave/candtotal
Here is my data
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input str11 donorid long amount str10 candid double dwnom1 "29075807371" 250 "cand1297" -.397 "9423" 1000 "cand645" -.225 "9423" 1000 "cand645" -.225 "3734270681" 200 "cand42555" . "4145347783" 750 "cand1327" -.439 "2675854749" 1000 "cand1269" -.305 "151787" 1000 "cand132" -.328 "151787" 1000 "cand132" -.328 "143206" 500 "cand364" .704 "143206" 500 "cand364" .704 "2692876123" 700 "cand1229" .339 "29055799837" 250 "cand192" -.421 "29356125709" 250 "cand192" -.421 "29386443969" 250 "cand192" -.421 "70001128" 2053 "cand662" -.321 "70001128" 2053 "cand662" -.321 "29075800235" 500 "cand1553" .406 "52502762825" 1000 "cand1553" .406 "29065810925" 500 "cand1553" .406 "141572" 3 "cand52256" . "141572" 3 "cand52256" . "223230" 100 "cand1219" -.145 "223230" 100 "cand1219" -.145 "2469756684" 500 "cand53" -.667 "2999006487" 333 "cand1288" .518 "29095842545" 1000 "cand1244" -.169 "54005220240" 300 "cand43935" . "268748" 500 "cand469" .031 "268748" 500 "cand469" .031 "103572" -400 "cand519" .336 "103572" -400 "cand519" .336 "165605" -250 "cand687" .265 "165605" -250 "cand687" .265 "165605" -300 "cand692" .296 "165605" -300 "cand692" .296 "2089" -100 "cand647" -.1 "2089" -100 "cand647" -.1 "106971" -500 "cand509" .543 "106971" -500 "cand647" -.1 "106971" -500 "cand647" -.1 "106971" -500 "cand509" .543 "106971" -1000 "cand157" -.518 "106971" -1000 "cand157" -.518 "106971" -500 "cand465" .383 "106971" -500 "cand465" .383 "9910" -250 "cand726" .407 "9910" -250 "cand726" .407 "35691" -500 "cand469" .031 "35691" -500 "cand469" .031 "2559802768" 200 "cand40683" . end
0 Response to weighted average
Post a Comment