Jak korzystać z funkcji setdiff w r (z przykładami)


Funkcji setdiff() w R można użyć do znalezienia różnic między dwoma zbiorami. Ta funkcja używa następującej składni:

setdiff(x,y)

Złoto:

  • x, y: wektory lub ramki danych zawierające sekwencję elementów

W tym samouczku znajdziesz kilka przykładów praktycznego wykorzystania tej funkcji.

Przykład 1: Setdiff z wektorami numerycznymi

Poniższy kod pokazuje, jak użyć setdiff() do zidentyfikowania wszystkich wartości w wektorze a , które nie pojawiają się w wektorze 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

W wektorze a występują dwie wartości, które nie występują w wektorze b : 9 i 10 .

Jeśli odwrócimy kolejność wektorów w funkcji setdiff() , możemy zamiast tego zidentyfikować wszystkie wartości w wektorze b , które nie pojawiają się w wektorze a :

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

[1] 2 6

W wektorze b pojawiają się dwie wartości, które nie występują w wektorze a : 2 i 6 .

Przykład 2: Setdiff z wektorami znakowymi

Poniższy kod pokazuje, jak użyć setdiff() do zidentyfikowania wszystkich wartości w wektorze char1 , które nie pojawiają się w wektorze 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”

Przykład 3: Setdiff z ramkami danych

Poniższy kod pokazuje, jak używać setdiff() do identyfikowania wszystkich wartości w kolumnie ramki danych, które nie pojawiają się w tej samej kolumnie drugiej ramki danych:

 #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

Widzimy, że wartości 94 i 104 pojawiają się w kolumnie punktowej pierwszej ramki danych, ale nie w kolumnie punktowej drugiej ramki danych.

Dodatkowe zasoby

Jak sumować określone kolumny w R
Jak sumować określone wiersze w R
Jak wykonać częściowe dopasowanie ciągów w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *