Odp.: jak scalić ramki danych według nazw kolumn


Do łączenia ramek danych według nazw kolumn w R można użyć następujących metod:

Metoda 1: Scal na podstawie pasującej nazwy kolumny

 merge(df1, df2, by=' var1 ')

Metoda 2: Scal na podstawie niedopasowanej nazwy kolumny

 merge(df1, df2, by. x = ' var1 ', by. y = ' variable1 ')

Metoda 3: Scal na podstawie wielu pasujących nazw kolumn

 merge(df1, df2, by=c(' var1 ', ' var2 '))

Metoda 4: Scal na podstawie wielu niedopasowanych nazw kolumn

 merge(df1, df2, by. x =c(' var1 ', ' var2 '), by. y =c(' variable1 ', ' variable2 '))

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Scal na podstawie pasującej nazwy kolumny

Poniższy kod pokazuje, jak połączyć dwie ramki danych w R na podstawie pasującej nazwy kolumny:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with matching name
merge(df1, df2, by=' team ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

Rezultatem jest ramka danych pasująca do wierszy w każdej ramce danych przy użyciu kolumny zespołu .

Przykład 2: Scal na podstawie niedopasowanej nazwy kolumny

Poniższy kod pokazuje, jak połączyć dwie ramki danych w R na podstawie niedopasowanej nazwy kolumny:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with unmatched name
merge(df1, df2, by. x = ' team ', by. y = ' team_name ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

Wynikiem jest ramka danych, która dopasowuje wiersze przy użyciu kolumny zespół w pierwszej ramce danych i kolumny nazwa_zespołu w drugiej ramce danych.

Przykład 3: Scal na podstawie wielu pasujących nazw kolumn

Poniższy kod pokazuje, jak połączyć dwie ramki danych w R na podstawie wielu pasujących nazw kolumn:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by=c(' team ', ' position '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

Rezultatem jest ramka danych, która dopasowuje wiersze w każdej ramce danych przy użyciu kolumny zespół i pozycja w każdej ramce danych.

Przykład 4: Scal na podstawie wielu niedopasowanych nazw kolumn

Poniższy kod pokazuje, jak połączyć dwie ramki danych w R na podstawie wielu niedopasowanych nazw kolumn:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'A', 'B', 'B'),
                  position_name=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by. x =c(' team ', ' position '), by. y =c(' team_name ', ' position_name '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

Rezultatem jest ramka danych, która dopasowuje wiersze przy użyciu kolumn zespół i pozycja w pierwszej ramce danych oraz kolumn nazwa_zespołu i nazwa_pozycji w drugiej ramce danych.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe funkcje ramki danych w R:

Jak wykonać lewe złączenie w R
Jak wykonać złączenie wewnętrzne w R
Jak wykonać WYSZUKAJ.PIONOWO w R
Jak dodać wiersze do ramki danych w R

Dodaj komentarz

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