Anderson was struck on his hand while bowling during practice. He will be in a cast for the next two weeks, thus ending his chances of making his ODI debut on this tour. Anderson played in all three T20s against South Africa last month, scoring 17 runs in two innings and failing to take a wicket.
Elliott, who grew up in Johannesburg, has played five Tests, 37 ODIs and a single T20 for New Zealand but hasn't featured in an international game since December 2010. He has scored four fifties and a century in his ODI career. He has played only once before against South Africa, in the 2009 Champions Trophy.
New Zealand will play three ODIs against South Africa, between January 19 and 25.