2016-06-25 2 views
-1
dat1 <- data.frame(Date_Time = c("20120628", "20120629 1045", "20120723 1100", "20120726 1500"), 
          O = c(2345, 4567, 6780, 3456), 
         '2000C' = c(NA, 250, 100, NA), 
          PUT.1 = c(4, NA, 50, 50), 
         '3000C' = c(NA, 45, 50, 70), 
          PUT.2 = c(50, 40, NA, 20)) 

dat2 <- data.frame(Date_Time = c("20120728 1200", "20120829 1145", "20120923 1100", "201201026 1400"), 
        O = c(4345, 4567, 5080, 4456), 
        '4000C' = c(NA, 250, 100, NA), 
        PUT.4 = c(4, NA, 50, 50), 
        '5000C' = c(NA, 45, 50, 70), 
        PUT.5 = c(50, 40, NA, 20)) 

Dies sind reproduzierbare Beispiele, ich habe eine Liste von Datenrahmen, wie oben, ich will verschmelzen sie alle, aber mehrere Spaltennamen in jedem gibt es, was hält in allen Daten frames.Pls Wechsel sind helfeneine Liste von Datenrahmen mit mehreren Spalten verschmelzen, nur eindeutige Spaltenname ist date_time, sind einige Spalten Namen gleich, einige andere sind

ich bereits verwendet habe res <- merge(dt1, dt2, by = ("Date_Time"), all.x = TRUE), nur wenn, um zu sehen, ob nur zwei dt auf nicht zusammengeführt wird, aber es zeigt nur die Date_Time Spalte Werte für eine der dt, und nicht für die andere, ich sehe nicht die date_time Spalte für das andere df zusammengeführt werden. Pls helfen, dieses Problem seit einiger Zeit zu beheben.

+0

1) Haben Sie ein wenig Verständnis, was 'Join' von zwei Tabellen bedeutet, wird Ihnen helfen, die äquivalent zu' merge' in R ist; 2) herauszufinden, was Sie wollen, die Ausgabe wird helfen, es wird noch besser, wenn Sie uns die gewünschte Ausgabe zeigen können, so dass wir helfen können; – Psidom

Antwort

0
dt1 <- data.table(Date_Time = c("20120628", "20120629 1045", "20120723 1100", "20120726 1500"), 
        O = c(2345, 4567, 6780, 3456), 
        '2000C' = c(NA, 250, 100, NA), 
        PUT.1 = c(4, NA, 50, 50), 
        '3000C' = c(NA, 45, 50, 70), 
        PUT.2 = c(50, 40, NA, 20)) 

dt2 <- data.table(Date_Time = c("20120728 1200", "20120829 1145", "20120923 1100", "201201026 1400"), 
        O = c(4345, 4567, 5080, 4456), 
        '4000C' = c(NA, 250, 100, NA), 
        PUT.4 = c(4, NA, 50, 50), 
        '5000C' = c(NA, 45, 50, 70), 
        PUT.5 = c(50, 40, NA, 20)) 

res <- merge(dt1, dt2, by = ("Date_Time"), all.x = TRUE) 
Verwandte Themen