DATA candidates; INPUT year candidate $ party $ outcome $ ; DATALINES; 1976 Carter D W 1976 Ford R L 1980 Reagan R W 1980 Carter D L 1984 Reagan R W 1984 Mondale D L 1988 Bush R W 1988 Dukakis D L 1992 Clinton D W 1992 Bush R L 1996 Clinton D W 1996 Dole R L 2000 Bush R W 2000 Gore D L 2004 Bush R W 2004 Kerry D L ; RUN; /* Split into two data sets and rename variables as the two new data sets are created. */ data winners(rename=(candidate=winner party=win_party)) losers(rename=(candidate=loser party=lose_party)); set candidates; if outcome = "W" then output winners; else if outcome = "L" then output losers; drop outcome; run; proc sort data=winners; by year; run; proc sort data=losers; by year; run; data all; merge winners losers; by year; run; /* Split into two data sets and rename variables after the two new data sets are created. */ data winners losers; set candidates; if outcome = "W" then output winners; else if outcome = "L" then output losers; drop outcome; run; data winners; set winners; rename candidate=winner party=win_party; run; proc sort data=winners; by year; run; data losers; set losers; rename candidate=loser party=lose_party; run; proc sort data=losers; by year; run; data all; merge winners losers; by year; run;