Як використовувати функцію 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

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

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