Ho due data.tables con molti campi.R join data.table: SQL "select *" simile sintassi nelle tabelle unite?
Desidero unire le due tabelle, aggiungere alcuni campi calcolati e aggiungere tutti gli altri campi dalla prima, seconda o entrambe le tabelle (simile a SQL select a+b AS sum, DT1.*, DT2.* FROM...
) senza digitare tutti i nomi dei campi.
Come posso fare questo (per quanto riguarda la sintassi più semplice e le migliori prestazioni)?
semplificato dati esempio:
library(data.table)
DT1 = data.table(x=c("c", "a", "b", "a", "b"), a=1:5)
DT2 = data.table(x=c("d", "c", "b"), b=6:8)
Ora voglio unire le tabelle e aggiungere un campo calcolato:
DT1[DT2, .(sum=a + b, <<< how to say DT1.*, DT2.* here? >>>), on="x"]
Aggiornamento 4 MAGGIO 2016: Ispirato da utente jangorecki Ho trovato una richiesta di funzionalità per questo:
Should be able to refer to i's .SD during a join
io non sono sicuro che questo è proprio quello che avete bisogno, ma dare un'occhiata al l'argomento .SDcols nella tabella dei dati. Può essere utile – giraffehere
@giraffehere Penso che .SDcols mi richiede di specificare ogni nome di campo che voglio evitare. Sto cercando di trovare una soluzione con .SD ma questo non funziona (errore di sintassi e nessun modo per differenziare tra DT1 e DT2) –
Forse mostrare anche l'output desiderato? La tua domanda mi confonde un po '. –