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