I am not sure if this is a documentation problem or an implementation problem:
The 'partial' feature of sort works fine with all values of na.last for some values of 'partial': > sort(c(3,NA,1,2),na.last=FALSE,partial=1:2) # find minimum values [1] NA 1 2 3 > sort(c(3,NA,1,2),na.last=TRUE,partial=1:2) [1] 1 2 3 NA > sort(c(3,NA,1,2),na.last=NA,partial=1:2) [1] 1 2 3 > sort(c(3,NA,1,2),na.last=FALSE,partial=2:3) [1] NA 1 2 3 > sort(c(3,NA,1,2),na.last=TRUE,partial=2:3) [1] 1 2 3 NA > sort(c(3,NA,1,2),na.last=NA,partial=2:3) [1] 1 2 3 but not all: > sort(c(3,NA,1,2),na.last=FALSE,partial=3:4) # find maximum values Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : index 4 outside bounds > sort(c(3,NA,1,2),na.last=TRUE,partial=3:4) Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : index 4 outside bounds > sort(c(3,NA,1,2),na.last=NA,partial=3:4) Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : index 4 outside bounds # error is expected here, since there will be no .[4] value Thought the documentation warns that "many of the options are not available for partial sorting", it does not seem to say anything about NA not being handled in some cases. The problem seems to occur when the 'partial' range would have included non-existent positions if na.last were NA, even when na.last is not NA. -s [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel