A: як знайти найближче значення у векторі


Ви можете використовувати такий базовий синтаксис, щоб знайти найближче значення між елементами двох векторів у R:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: пошук найближчого значення у векторі в R

Припустимо, що ми маємо такі два вектори в R:

 #definevectors
vector1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector2 <- c(3, 5, 8, 11)

Тепер припустімо, що для кожного значення в першому векторі ми хочемо знайти найближче значення в другому векторі.

Для цього ми можемо використати такий синтаксис:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

 [1] 3 3 3 3 5 5 8 8 8 11

Ось як інтерпретувати результат:

  • Для першого значення вектора1 (1) найближчим значенням до вектора2 є 3 .
  • Для другого значення вектора1 (2) найближчим значенням до вектора2 є 3 .
  • Для третього значення вектора1 (3) найближчим значенням до вектора2 є 3 .
  • Для четвертого значення вектора1 (4) найближчим значенням до вектора2 є 3 .
  • Для п’ятого значення вектора1 (5) найближчим значенням до вектора2 є 5 .

І так далі.

Примітка : Цей метод передбачає, що значення другого вектора строго зростають. Якщо ви ще цього не зробили, можливо, вам доведеться спочатку відсортувати другий вектор.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як обчислити середнє значення на групу в R
Як усереднити стовпці в R
Як підсумувати певні стовпці в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *