I have a file of several hundred backgammon matches and I want to use SAS to calculate a rating for each player, prior to each match, based on their past performance. I have the date, the names of each player, the outcome for black (1=Win for Black, 0=Win for White) and the number of points in each match. The file looks like this… ============================================================================== Date Black White W/L Match Length Black_Rating White_Rating ============================================================================== 1/1/2001 Frank John 1 7 100 100 1/2/2001 Bill Jeff 0 5 100 100 1/4/2001 Jeff Bill 1 3 101 99 1/5/2001 John Frank 0 5 99 101 1/6/2001 Bill John 0 9 100 98 Etc….. I want to calculate a modified version of the Elo system and start everyone’s rating at 100. So Frank and John have never played so both rating would be 100 and the same for the next row containing Bill and Jeff’s match. For simplicity, let’s say if you win a match you add 1 to your score and subtract 1 for a loss; so, row 3 would read 101 and 99 respectively. My problem is I want SAS to recognize who the two opponents are, and put their current ratings in the corresponding columns then based on the outcome of the match, calculate and remember the new rating. I’ve tried using RETAIN but my problem arises from the fact that any person can be in the black or white column. Any ideas? Thanks, John
... View more