Как использовать функцию setdiff в r (с примерами)


Функцию setdiff() в R можно использовать для поиска различий между двумя наборами. Эта функция использует следующий синтаксис:

установитьdiff(x,y)

Золото:

  • x, y: векторы или кадры данных, содержащие последовательность элементов.

В этом руководстве представлено несколько примеров практического использования этой функции.

Пример 1: Setdiff с числовыми векторами

Следующий код показывает, как использовать setdiff() для идентификации всех значений в векторе a , которые не появляются в векторе b :

 #definevectors
a <- c(1, 3, 4, 5, 9, 10)
b <- c(1, 2, 3, 4, 5, 6)

#find all values in a that do not occur in b
setdiff (a,b)

[1] 9 10

В векторе a есть два значения, которых нет в векторе b : 9 и 10 .

Если мы изменим порядок векторов в функции setdiff() , мы сможем вместо этого идентифицировать все значения в векторе b , которые не встречаются в векторе a :

 #find all values in b that do not occur in a
setdiff (b,a)

[1] 2 6

В векторе b есть два значения, которых нет в векторе a : 2 и 6 .

Пример 2: Setdiff с векторами символов

Следующий код показывает, как использовать setdiff() для идентификации всех значений в векторе char1 , которые не появляются в векторе char2 :

 #define character vectors
char1 <- c('A', 'B', 'C', 'D', 'E')
char2 <- c('A', 'B', 'E', 'F', 'G')

#find all values in char1 that do not occur in char2
setdiff (char1, char2)

[1] “C” “D”

Пример 3: Setdiff с кадрами данных

Следующий код показывает, как использовать setdiff() для идентификации всех значений в столбце фрейма данных, которые не отображаются в том же столбце второго фрейма данных:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 94, 104))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 98, 99))

#find differences between the points columns in the two data frames
setdiff (df1$points, df2$points)

[1] 94 104

Мы видим, что значения 94 и 104 появляются в столбце точек первого фрейма данных, но не в столбце точек второго фрейма данных.

Дополнительные ресурсы

Как суммировать определенные столбцы в R
Как суммировать определенные строки в R
Как выполнить частичное сопоставление строк в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *