Jeśli dobrze rozumiem, domyślnie data.table
scala dwie tabele, porównując kolumny, które są ustawione jako klucze i mają te same nazwy. Jak mam pisać, jeśli mam tabele o różnych nazwach kolumn? Na przykład:scalanie tabel o różnych nazwach kolumn
set.seed(123)
DT1<-data.table(col1=sample(letters,5,replace=TRUE),col2=sample(LETTERS[1:5],5,replace=TRUE),col3=sample(1:2,5,replace=TRUE))
DT2<-data.table(col4=sample(1:3,10,replace=TRUE),col5=sample(LETTERS[1:5],10,replace=TRUE),col6=sample(1:100,10,replace=TRUE))
(DT1)
(DT2)
> (DT1)
col1 col2 col3
1: h A 2
2: u C 1
3: k E 2
4: w C 2
5: y C 1
> (DT2)
col4 col5 col6
1: 3 D 48
2: 1 C 76
3: 1 C 22
4: 1 B 32
5: 3 A 24
6: 3 E 15
7: 3 E 42
8: 2 D 42
9: 3 D 37
10: 2 A 16
Co powinienem napisać w DT1[
dokonać scalenia określenie tylko wiersze z col2 == Col5 & Col3 == Col4? Oto oczekiwany wynik:
col1 col2 col3 col4 col5 col6
h A 2 2 A 16
u C 1 1 C 76
u C 1 1 C 22
y C 1 1 C 76
y C 1 1 C 22
Z góry dzięki!
Czy możesz pokazać nam wyniki, których się spodziewasz? – Arun
pewnie, tylko sekundę –
dodam, że jest to dobre pytanie, które należy mieć na uwadze, próbując dowiedzieć się, dlaczego 'data.table' scalił się na" złych "kolumnach, gdy nie rozróżnia się kluczy roztropnie. – MichaelChirico