Як використовувати функцію intersect() у r (з прикладами)
Ви можете використовувати функцію intersect() у базовому R, щоб знайти перетин двох об’єктів.
«Перетин» просто представляє елементи, спільні для двох об’єктів.
Ця функція використовує такий базовий синтаксис:
intersect(object1, object2)
У наступних прикладах показано, як використовувати функцію intersect() із векторами та кадрами даних.
Приклад 1: використовуйте intersect() із векторами
У наступному коді показано, як використовувати функцію intersect() для пошуку перетину між двома векторами в R:
#define two vectors x <- c(1, 4, 5, 5, 9, 12, 19) y <- c(1, 2, 5, 5, 10, 14, 19) #find intersection between two vectors intersect(x,y) [1] 1 5 19
З результату ми бачимо, що вектори x і y мають три спільних значення: 1 , 5 і 19 .
Зауважте, що функція intersect() також працює з символьними векторами:
#define two vectors x <- c('A', 'B', 'C', 'D', 'E') y <- c('C', 'D', 'E', 'F') #find intersection between two vectors intersect(x,y) [1] “C” “D” “E”
З результату ми бачимо, що вектори x і y мають три спільні рядки: C , D і E.
Зауважте, що для роботи функції intersect() два вектори не обов’язково повинні мати однакову довжину.
Приклад 2: використовуйте intersect() із кадрами даних
Щоб знайти рядки, спільні для двох кадрів даних, нам потрібно використати функцію intersect() із пакету dplyr .
Наступний код показує, як використовувати цю функцію для пошуку рядків, які мають спільні кадри даних:
library (dplyr) #define two data frames df1 <- data. frame (team=c('A', 'A', 'B', 'B'), dots=c(12, 20, 25, 19)) df1 team points 1 to 12 2 to 20 3 B 25 4 B 19 df2 <- data. frame (team=c('A', 'A', 'B', 'C'), dots=c(12, 22, 25, 32)) df2 team points 1 to 12 2 to 22 3 B 25 4 C 32 #find intersection between two data frames dplyr::intersect(df1, df2) team points 1 to 12 2 B 25
З результату ми бачимо, що кадри даних мають два спільних рядки.
Зверніть увагу, що ця функція intersect() повертатиме лише ті рядки, які мають однакові значення в кожному стовпці між двома кадрами даних.
Також зауважте, що ми можемо використовувати функцію length() із функцією intersect() , щоб просто знайти кількість рядків, спільних для двох кадрів даних:
#find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))
[1] 2
З результату ми бачимо, що обидва кадри даних мають 2 спільні рядки.
Додаткові ресурси
У наступних посібниках пояснюється, як використовувати інші поширені функції в R:
Як використовувати функцію dim() у R
Як використовувати функцію transform() у R
Як використовувати функцію swep() у R