2016-03-29 5 views
0

wenn ich eine Tabelle wieIntersect dann in R aktualisieren

Tabelle 1

id name 
1  A 
2  D 
3  B 
4  C 

Tabelle 2

id name 
2 A 
3 A 
4 D 
5 D 

Tabelle 3

id name 
1 D 
3 B 
4 B 
5 D 

wenn m1 < - Tabelle 1 und m2 < - ta BLE2 und m3 < - table3, was ich getan habe ist:

aPid <-Reduce(intersect, list(m1$id,m2$id,m3$id)) 

und ich möchte Tabellen aktualisieren basierend auf durchteuften id wie:

m11 <- applyIndexToDataFrame(m1, m1$id %in% aPid) 
m22 <- applyIndexToDataFrame(m2, m2$id %in% aPid) 
m33 <- applyIndexToDataFrame(m3, m3$id %in% aPid) 

'applyIndexToDataFram' is not real function. I just made up 

Dann endlich:

Tabelle 1

Tabelle 2

id name 
3  A 
4  D 

Tabelle 3

id name 
3  B 
4  B 

Gibt es eine Funktion Tabellen zu aktualisieren, basierend auf durchteuften Daten in R?

Antwort

1

Ihre "applyIndextoDataFrame" Funktion durch die Verwendung Klammer Untereinstellungen Notation nur erreicht werden kann:

m11 <- m1[m1$id %in% aPid,] 

Sie können es, wenn Sie wie wie in einem Aufruf tun:

m11 <- m1[m1$id %in% Reduce(intersect, list(m1$id,m2$id,m3$id)),] 
+0

Thank you so viel XD – dPdms