Я хотел бы узнать три ближайших числа в векторе. Что-то вроде
v = c(10,23,25,26,38,50)
c = findClosest(v,3)
c
23 25 26
Я пытался с sort(colSums(as.matrix(dist(x))))[1:3]
, и это вроде работает, но он выбирает три числа с минимальным общим расстоянием, а не три ближайших числа.
Для Matlab уже есть ответ, но я не знаю, как перевести его на R:
%finds the index with the minimal difference in A
minDiffInd = find(abs(diff(A))==min(abs(diff(A))));
%extract this index, and it neighbor index from A
val1 = A(minDiffInd);
val2 = A(minDiffInd+1);
Как найти два ближайших (ближайших) значения в векторе в MATLAB?