[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"Eric G. Wruck" <ewruck@econalytics.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: question: how do i... |

Date |
Sun, 6 Mar 2005 23:16:37 -0500 |

I like Phil Schumm's solution but wanted to see if I could come up with a way to identify the second largest. As primitive as it is, this seems to work: . egen max = rmax(votesa-votesd) . foreach var of varlist votesa votesb votesc votesd { 2. replace `var' = . if `var' == max 3. } (0 real changes made) (1 real change made, 1 to missing) (0 real changes made) (4 real changes made, 4 to missing) . egen second = rmax(votesa-votesd) . gen mofv = max - second . l +-----------------------------------------------------------------+ | state votesa votesb votesc votesd max second mofv | |-----------------------------------------------------------------| 1. | 1 10 1 6 . 21 10 11 | 2. | 2 11 2 7 . 22 11 11 | 3. | 3 12 3 8 . 13 12 1 | 4. | 4 1 . 2 3 4 3 1 | 5. | 5 2 5 3 . 7 5 2 | +-----------------------------------------------------------------+ You may have a problem with ties but you didn't specify how you wanted to handle any such eventuality. Best wishes, Eric >i have the following problem: > >i want to construct a variable called margin of victory: > >my data set looks something like this: > > >state votesA votesB votesC votesD >1 10 1 6 21 >2 11 2 7 22 >3 12 3 8 13 >4 1 4 2 3 >5 2 5 3 7 > > >my question is: > >how do i create a variable called margin_of_victory = votes for 1st place - votes for 2nd place?, i.e. 21-10 for state 1, 22 - 11 for state 2, 13 - 12 for state 3, 4 - 3 for state 4, etc. > >i can't do this by hand, since i have a huge data set. > >i know that the command > >. egen margin_of_victory = rmax (votesforA votesforB votesforC votesforD) > > >will help me pick the biggest number in each row, but how do i get to choose the 2nd biggest number? > >thanks many, and sorry if this is a silly question. > >thanks many. > >ISB -- =================================================== Eric G. Wruck Econalytics 2535 Sherwood Road Columbus, OH 43209 ph: 614.231.5034 cell: 614.327.4182 fax: 614.231.5039 eFax: 614.573.6639 eMail: ewruck@econalytics.com website: http://www.econalytics.com ==================================================== * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**st: question: how do i...***From:*"israel solaresbravo" <israelsolaresbravo@hotmail.com>

- Prev by Date:
**Re: st: question: how do i...** - Next by Date:
**RE: st: question: how do i...** - Previous by thread:
**Re: st: question: how do i...** - Next by thread:
**RE: st: question: how do i...** - Index(es):

© Copyright 1996–2015 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |