2016-03-30 6 views
0

Ich versuche herauszufinden, wie zwei Datenrahmen in einer Weise zusammengeführt werden, dass, wenn der Wert eines Datensatzes in k-1 Spalten gleich ist, das gemeinsame k kombiniert wird -1 Spalten mit anderen 2 nicht gemeinsamen Spalten in einem Datensatz?Zusammenführung von zwei Datensätzen basierend auf k-1 gemeinsamen Spaltenwerten

Danke!

df1 <- data.frame(X1 = c('+'), X2 = c('+'), X3 = c('O')) 
df1 

df2 <- data.frame(X1 = c('+'), X2 = c('+'), X3 = c('X')) 
df2 

Erwartet

df12 <- data.frame(X1 = c('+'), X2 = c('+'), X3 = c('O'),X4 = c('X')) 
df12 

Antwort

0
df12 <- merge(df1, df2, by=c("X1", "X2")) 
names(df12)[3:4] <- paste0("X", 3:4) 

Bitte beachten Sie die Hilfe-Handbuch von merge für weitere Informationen. Geben Sie "? Zusammenführen" in der R-Konsole ein.

+0

Obwohl es nicht allgemein ist, aber ich habe die Idee, wie nach meiner Anforderung zu manipulieren. Vielen Dank! – Prerit

+0

'df12 <- merge (df1, df2, by = Namen (df) [- (k-1)])' – Prerit

+0

Großartig! Prost. @ Prerit –

Verwandte Themen