Як використовувати оператор «not in» у r (з прикладами)


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

 ! (data %in% c(value1, value2, value3, ...))

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

Приклад 1: як використовувати «NOT IN» із векторами

Наступний код показує, як вибрати всі значення вектора в R, яких немає в певному списку значень:

 #define numeric vector
num_data <- c(1, 2, 3, 3, 4, 4, 5, 5, 6)

#display all values in vector not equal to 3 or 4
num_data[ ! (num_data %in% c(3, 4))]

[1] 1 2 5 5 6

У вихідні дані виводяться всі значення, які не дорівнюють 3 або 4.

Зверніть увагу, що ми можемо використовувати той самий синтаксис, щоб вибрати всі елементи вектора, яких немає в певному списку символів:

 #define vector of character data
char_data <- c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'D')

#display all elements in vector not equal to 'A', or 'C'
char_data[ ! (char_data %in% c('A', 'C'))]

[1] “B” “B” “D” “D” “D”

Будь-які значення, які не дорівнюють “A” або “C”, відображаються у виводі.

Приклад 2: Як використовувати «NOT IN» із кадрами даних

Наступний код показує, як вибрати всі рядки кадру даних у R, у якому певний стовпець не відповідає певним значенням:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (team %in% c('A', 'B')))

  team points assists
5 C 99 32
6 C 92 39
7 D 97 14

Зауважте, що всі рядки, які не мають «A» або «B» у стовпці команди, повертаються.

Ми також можемо використовувати подібний синтаксис, щоб вибрати всі рядки, у яких певний стовпець не відповідає певним числовим значенням:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (points %in% c(89, 99)))

  team points assists
1 A 77 19
2 A 81 22
4 B 83 15
6 C 92 39
7 D 97 14

Зверніть увагу, що повертаються всі рядки, які не дорівнюють 89 або 99 у стовпці балів.

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

Як використовувати оператор %in% у R
Як створити підмножину кадру даних у R
Як підмножити списки в R

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

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