Se ho capito bene, per impostazione predefinita data.table
unisce due tabelle confrontando colonne impostate come chiavi e con lo stesso nome. Come dovrei scrivere se ho tabelle con nomi di colonne diversi? Per esempio:unione di tabelle con nomi di colonne diversi
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
Cosa devo scrivere in DT1[
per fare una fusione selezionando solo le righe con col2 == Col5 & col3 == col4? Ecco un output previsto:
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
Grazie in anticipo!
Puoi mostrarci l'output che ti aspetti? – Arun
sicuro, solo un secondo –
aggiungerò che questa è una buona domanda da tenere a mente quando si cerca di capire perché 'data.table' si è fusa sulle colonne" sbagliate "quando non si sono specificate le chiavi con prudenza. – MichaelChirico