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