SimplyAutomationized

Interpolate missing years in array

Jul 3rd, 2015
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //interpolate missing years:
  2. -(NSArray*)interpolateMissingYears{
  3.     NSMutableArray *years = [[NSMutableArray alloc] initWithCapacity:[self.state count]];
  4.     //create array of years
  5.     for(CoreStateData *state in self.state){
  6.         [years addObject:state.year];
  7.     }
  8.     int yearspan = [[years objectAtIndex:[years count]-1] intValue] - [[years objectAtIndex:0] intValue];
  9.     NSMutableArray *newArray = [[NSMutableArray alloc] initWithCapacity:yearspan];
  10.     NSUInteger len = [years count];
  11.     [newArray addObject:[years objectAtIndex:0]];
  12.     int missingIndex=0;
  13.     int index = 1;
  14.     while (index<len) {
  15.         NSNumber *thisYear = [newArray objectAtIndex:missingIndex];
  16.         missingIndex++;
  17.         NSNumber *nextYear = [years objectAtIndex:index];
  18.         if([nextYear intValue]-[thisYear intValue]==1)
  19.             index++;
  20.             NSNumber *newYear = [NSNumber numberWithInt:[thisYear intValue]+
  21.                                     (([nextYear intValue]-[thisYear intValue])/([nextYear intValue]-[thisYear intValue]))];
  22.         [newArray addObject:newYear];
  23.     }
  24.     return newArray;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment