Можно использовать несколько транзакций и управлять им в объеме.
Для верхних 5%:
n <- 5 data[data$V2 > quantile(data$V2,prob=1-n/100),]
В топ-5% также:
head(data[order(data$V2,decreasing=T),],.05*nrow(data))