Odp.: jak scalić ramki danych w oparciu o wiele kolumn
Możesz użyć następującej podstawowej składni, aby połączyć dwie ramki danych w R w oparciu o wiele kolumn:
merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Scal bloki danych w wielu kolumnach
Załóżmy, że mamy w R następujące dwie ramki danych:
#define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
team=c('A', 'B', 'B', 'B', 'C', 'C'),
dots=c(19, 22, 25, 29, 34, 39))
df2 = data. frame (playerID=c(1, 2, 3, 4),
tm=c('A', 'B', 'B', 'B'),
rebounds=c(7, 8, 8, 14))
#view first data frame
df1
playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39
#view second data frame
df2
playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14
Zwróć uwagę, że obie ramki danych mają wspólną kolumnę playerID , ale kolumny zespołu mają w każdej ramce różne nazwy:
- Pierwsza ramka danych zawiera kolumnę „ zespół ”.
- Druga ramka danych ma kolumnę „ tm ”
Aby połączyć te ramki danych w oparciu o kolumny playerID i team, musimy użyć argumentów by.x i by.y.
Do wykonania tego scalania możemy użyć następującego kodu:
#merge two data frames merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm ')) #view merged data frame merged playerID team points rebounds 1 1 A 19 7 2 2 B 22 8 3 3 B 25 8 4 4 B 29 14
Ostateczna połączona ramka danych zawiera dane wszystkich czterech graczy należących do oryginalnych dwóch ramek 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ć WYSZUKAJ.PIONOWO w R
Jak dodać wiersze do ramki danych w R