我正在检查数据向量是否为排名形式。那是;每个观测值都是介于1和N之间的数字,其中N是观测值的数量,但是是随机的,未知的顺序。
我能想到的最简单的检查是高斯求和,使用(N *(N + 1))/ 2并将其与矢量之和进行比较。除了我的情况,我有200,000个观测值,1到200,000之间的所有数字的总和大于2 ^ 32。除了获得64位计算机之外,检查数据的排名最快的方法是什么。
答案 0 :(得分:0)
checkForRanks <- setdiff(1:N,X)
isRanked <- length(checkForRanks) > 0
if(!isRanked) stop("Please rank data")