data2012 <- read.csv("C:/Users/nate/Dropbox/SFU/Acma475/Project/data2012.csv"); print(data2012)
##    Member..      Date.of.Birth Date.of.Plan.Entry Gender Salary.2012
## 1       A01 September 16, 1945     August 1, 1977      M     $89,411
## 2       A02       July 4, 1946  September 1, 1974      F     $93,247
## 3       A03     April 22, 1948      April 1, 1980      F     $71,328
## 4       A04   February 8, 1949      April 1, 1977      M     $90,848
## 5       A05  November 27, 1949    October 1, 1982      M     $62,476
## 6       A06 September 15, 1950   November 1, 1979      F     $75,239
## 7       A07       July 4, 1951       June 1, 1985      M     $59,660
## 8       A08     April 21, 1952       June 1, 1982      M     $69,255
## 9       A09   February 7, 1953    January 1, 1988      M     $58,925
## 10      A10  November 26, 1953    January 1, 1985      F     $60,607
## 11      A11 September 14, 1954     August 1, 1990      M     $61,009
## 12      A12       July 3, 1955  September 1, 1987      M     $59,070
## 13      A13     April 20, 1956      April 1, 1993      M     $54,680
## 14      A14   February 6, 1957    October 1, 1977      M     $77,069
## 15      A15  November 25, 1957      April 1, 1983      M     $60,869
## 16      A16 September 13, 1958        May 1, 1980      M     $70,046
## 17      A17       July 2, 1959   December 1, 1985      M     $59,213
## 18      A18     April 19, 1960   December 1, 1982      F     $62,188
## 19      A19   February 5, 1961       July 1, 1988      F     $61,353
## 20      A20  November 24, 1961       July 1, 1985      M     $59,364
## 21      A21 September 12, 1962   February 1, 1991      M     $55,526
## 22      A22       July 1, 1963   February 1, 1988      F     $58,771
## 23      A23     April 18, 1964  September 1, 1993      M     $48,360
## 24      A24   February 4, 1965    October 1, 1990      M     $59,009
## 25      A25  November 23, 1965      April 1, 1996      M     $40,763
## 26      A26 September 11, 1966        May 1, 1993      M     $52,800
## 27      A27      June 30, 1967   November 1, 1998      F     $38,865
## 28      A28     April 17, 1968   December 1, 1995      M     $43,548
## 29      A29   February 3, 1969       July 1, 2001      M     $37,591
## 30      A30  November 22, 1969       July 1, 1998      M     $40,552
## 31      A31 September 10, 1970   February 1, 2004      M     $35,025
## 32      A32      June 29, 1971   February 1, 2001      M     $38,123
## 33      A33     April 16, 1972  September 1, 2006      F     $32,286
## 34      A34   February 2, 1973    October 1, 2003      F     $37,482
## 35      A35  November 21, 1973      April 1, 2009      F     $30,603
## 36      A36  September 9, 1974        May 1, 2006      M     $31,411
## 37      A37      June 28, 1975   November 1, 2011      M     $27,492
## 38      A38     April 15, 1976   December 1, 2004      F     $33,649
## 39      A39   February 1, 1977       July 1, 2009      M     $30,234
## 40      A40  November 20, 1977       July 1, 2005      M     $30,615
## 41      A41  September 8, 1978   February 1, 2010      M     $39,938
## 42      A42      June 27, 1979   February 1, 2006      F     $43,445
## 43      A43     April 14, 1980  September 1, 2010      F     $33,392
## 44      A44   January 31, 1981    October 1, 2006      F     $31,160
## 45      A45  November 19, 1981      April 1, 2011      M     $34,932
##    Salary.2011 Salary.2010 Salary.2009 Salary.2008
## 1      $86,725     $84,025     $81,104     $78,645
## 2      $90,953     $89,995     $87,872     $86,853
## 3      $70,855     $70,343     $68,944     $67,976
## 4      $90,034     $86,774     $85,812     $84,156
## 5      $60,649     $59,990     $59,199     $57,817
## 6      $74,725     $72,669     $71,973     $69,546
## 7      $58,053     $56,266     $54,578     $53,786
## 8      $67,640     $65,391     $64,421     $63,317
## 9      $58,499     $58,379     $56,879     $55,726
## 10     $60,385     $59,547     $58,459     $58,443
## 11     $60,621     $59,078     $58,835     $58,781
## 12     $57,243     $55,882     $55,471     $55,183
## 13     $53,813     $51,887     $50,587     $49,974
## 14     $75,903     $73,847     $72,099     $70,326
## 15     $60,791     $58,561     $57,805     $57,266
## 16     $69,913     $68,857     $68,347     $67,957
## 17     $59,074     $57,414     $56,838     $56,446
## 18     $62,172     $59,900     $59,682     $59,105
## 19     $59,142     $57,454     $56,911     $56,208
## 20     $59,025     $58,491     $57,785     $55,889
## 21     $54,783     $54,233     $54,097     $53,301
## 22     $58,382     $57,596     $56,430     $55,843
## 23     $47,620     $45,913     $45,652     $44,101
## 24     $56,951     $56,896     $54,913     $53,536
## 25     $40,303     $38,996     $38,806     $38,457
## 26     $50,882     $49,465     $48,964     $47,819
## 27     $37,709     $36,502     $35,883     $35,870
## 28     $42,798     $41,478     $40,656     $40,368
## 29     $36,424     $35,525     $35,118     $34,774
## 30     $40,163     $39,324     $39,222     $39,077
## 31     $34,158     $33,160     $33,050     $32,913
## 32     $37,536     $36,446     $35,727     $34,976
## 33     $31,573     $30,364     $30,126     $30,033
## 34     $36,709     $35,457     $34,598     $34,005
## 35     $29,718     $28,658     $28,490            
## 36     $30,471     $29,744     $29,665     $29,251
## 37     $27,380                                    
## 38     $32,921     $32,649     $31,732     $31,373
## 39     $29,692     $29,661     $29,622            
## 40     $29,523     $28,515     $27,535     $27,174
## 41     $38,755     $38,144                        
## 42     $42,731     $41,126     $39,633     $38,775
## 43     $32,501     $31,891                        
## 44     $30,695     $29,899     $28,788     $27,758
## 45     $34,842
data2013 <- read.csv("C:/Users/nate/Dropbox/SFU/Acma475/Project/data2013.csv"); print(data2013)
##    Member..      Date.of.Birth Date.of.Plan.Entry Gender Salary.2013
## 1       A02       July 4, 1946  September 1, 1974      F     $96,510
## 2       A05  November 27, 1949    October 1, 1982      M     $64,818
## 3       A06 September 15, 1950   November 1, 1979      F     $77,496
## 4       A07       July 4, 1951       June 1, 1985      M     $61,897
## 5       A08     April 21, 1952       June 1, 1982      M     $71,852
## 6       A09   February 7, 1953    January 1, 1988      M     $61,282
## 7       A11 September 14, 1954     August 1, 1990      M     $63,297
## 8       A12       July 3, 1955  September 1, 1987      M     $60,842
## 9       A13     April 20, 1956      April 1, 1993      M     $56,867
## 10      A15  November 25, 1957      April 1, 1983      M     $63,151
## 11      A17       July 2, 1959   December 1, 1985      M     $61,582
## 12      A18     April 19, 1960   December 1, 1982      F     $64,364
## 13      A19   February 5, 1961       July 1, 1988      F     $63,347
## 14      A20  November 24, 1961       July 1, 1985      M     $61,145
## 15      A21 September 12, 1962   February 1, 1991      M     $57,469
## 16      A22       July 1, 1963   February 1, 1988      F     $60,681
## 17      A23     April 18, 1964  September 1, 1993      M     $49,811
## 18      A24   February 4, 1965    October 1, 1990      M     $61,222
## 19      A26 September 11, 1966        May 1, 1993      M     $54,648
## 20      A27      June 30, 1967   November 1, 1998      F     $40,323
## 21      A28     April 17, 1968   December 1, 1995      M     $45,181
## 22      A29   February 3, 1969       July 1, 2001      M     $39,001
## 23      A30  November 22, 1969       July 1, 1998      M     $42,073
## 24      A31 September 10, 1970   February 1, 2004      M     $36,251
## 25      A32      June 29, 1971   February 1, 2001      M     $39,362
## 26      A33     April 16, 1972  September 1, 2006      F     $33,336
## 27      A34   February 2, 1973    October 1, 2003      F     $38,700
## 28      A35  November 21, 1973      April 1, 2009      F     $31,827
## 29      A37      June 28, 1975   November 1, 2011      M     $28,592
## 30      A38     April 15, 1976   December 1, 2004      F     $34,995
## 31      A39   February 1, 1977       July 1, 2009      M     $31,368
## 32      A40  November 20, 1977       July 1, 2005      M     $31,763
## 33      A41  September 8, 1978   February 1, 2010      M     $41,136
## 34      A43     April 14, 1980  September 1, 2010      F     $34,477
## 35      A44   January 31, 1981    October 1, 2006      F     $32,250
## 36      A45  November 19, 1981      April 1, 2011      M     $36,155
## 37      A46 September 27, 1977    January 1, 2013      M     $52,281
## 38      A47    January 3, 1985      April 1, 2013      F     $21,764
## 39      A48  February 29, 1960       July 1, 2013      F     $33,414
## 40      A49  December 13, 1957      March 1, 2013      M     $41,886
## 41      A50      July 19, 1976   February 1, 2013      M     $38,137
##    Salary.2012 Salary.2011 Salary.2010 Salary.2009
## 1      $93,247     $90,953     $89,995     $87,872
## 2      $62,476     $60,649     $59,990     $59,199
## 3      $75,239     $74,725     $72,669     $71,973
## 4      $59,660     $58,053     $56,266     $54,578
## 5      $69,255     $67,640     $65,391     $64,421
## 6      $58,925     $58,499     $58,379     $56,879
## 7      $61,009     $60,621     $59,078     $58,835
## 8      $59,070     $57,243     $55,882     $55,471
## 9      $54,680     $53,813     $51,887     $50,587
## 10     $60,869     $60,791     $58,561     $57,805
## 11     $59,213     $59,074     $57,414     $56,838
## 12     $62,188     $62,172     $59,900     $59,682
## 13     $61,353     $59,142     $57,454     $56,911
## 14     $59,364     $59,025     $58,491     $57,785
## 15     $55,526     $54,783     $54,233     $54,097
## 16     $58,771     $58,382     $57,596     $56,430
## 17     $48,360     $47,620     $45,913     $45,652
## 18     $59,009     $56,951     $56,896     $54,913
## 19     $52,800     $50,882     $49,465     $48,964
## 20     $38,865     $37,709     $36,502     $35,883
## 21     $43,548     $42,798     $41,478     $40,656
## 22     $37,591     $36,424     $35,525     $35,118
## 23     $40,552     $40,163     $39,324     $39,222
## 24     $35,025     $34,158     $33,160     $33,050
## 25     $38,123     $37,536     $36,446     $35,727
## 26     $32,286     $31,573     $30,364     $30,126
## 27     $37,482     $36,709     $35,457     $34,598
## 28     $30,603     $29,718     $28,658     $28,490
## 29     $27,492     $27,380                        
## 30     $33,649     $32,921     $32,649     $31,732
## 31     $30,234     $29,692     $29,661     $29,622
## 32     $30,615     $29,523     $28,515     $27,535
## 33     $39,938     $38,755     $38,144            
## 34     $33,392     $32,501     $31,891            
## 35     $31,160     $30,695     $29,899     $28,788
## 36     $34,932     $34,842                        
## 37                                                
## 38                                                
## 39                                                
## 40                                                
## 41
members2012 = as.character(data2012[,1]) # analyze active members
members2013 = as.character(data2013[,1])
n2012 = length(members2012) # number of members in 2012
n2013 = length(members2013) # number of members in 2013

same = 0 # number of same members in 2012 and 2013
errors = 0 # number of inconsistencies in the data
member2013 = 0 # init
searches = 0 # efficiency of algorithm
j = 1 # init
for(i in 1:n2012) {
  member2012 = as.numeric(strsplit(members2012[i],"A")[[1]][2])
  
  j=ifelse(j>1,j-1,j)
  found=FALSE
  while(member2013 <= member2012 && found==FALSE) { # check whether member2012 exists in members2013
    member2013 = as.numeric(strsplit(members2013[j],"A")[[1]][2])
    searches = searches + 1 
    
    if(member2012 == member2013) { # same member both years
      found=TRUE
      commonFields2012 = c(2,3,4,5,6,7,8)
      commonFields2013 = c(2,3,4,6,7,8,9)
      for(m in 1:7) {
        field2012 = as.character(data2012[,commonFields2012[m]])[i]
        field2013 = as.character(data2013[,commonFields2013[m]])[j]
        if(field2012 != field2013)  errors = errors + 1
      }
    }
    j=j+1
  }
  
  if(found==TRUE) same = same + 1
}

print(same); print(errors)
## [1] 36
## [1] 0