2017-04-14 2 views
0

Ich habe zwei Datenrahmen, die die Namen von genetischen Elementen enthalten. Ich möchte einen anderen Datenrahmen mit den Elementen in beiden Datenrahmen gemeinsam haben. Beispiel:Wie man zwei Datenrahmen mit gleichen Elementen kombiniert

data.a  data.b 
    Column  Column 
1 a   c 
2 b   e 
3 c   l 
4 d   a 

Ich möchte dieses Ergebnis:

data.c 
    Column 
1 a 
2 c 

Dies ist nur ein Beispiel. Der Datenrahmen data.b hat mehr Elemente als data.a.

Antwort

1

Mit dem Operator %in% können Sie herausfinden, welche Elemente in beiden enthalten sind.

data.c = data.frame(Column = data.a$Column[data.a$Column %in% data.b$Column]) 
data.c 
    Column 
1  a 
2  c 
1
a <- data.frame(a = c("a","b","c","d")) 
a 
b <- data.frame(b = c("c","d","e","f")) 
b 
c <- data.frame(c = a[a$a %in% b$b,]) 
c 
+0

eine kurze Erklärung * Hinzufügen wie * die oben das Problem löst, wird es sinnvoller für andere. – Leigh

0
library(dplyr) 
data.a <- data_frame(a = c("a", "b", "c", "d")) 
data.b <- data_frame(a = c("c", "e", "l", "a")) 
data.c <- data.a %>% inner_join(data.b) 
1

Die Merge-Funktion können Sie den Verknüpfungstyp steuern Sie wollen.

df1 <- data.frame(a = c("a", "b", "c", "d")) df2 <- data.frame(a = c("c", "e", "l", "a")) merge(x=df1, y=df2, by.x="a", by.y="a", all = FALSE)

+0

Danke für die Hilfe, es funktioniert in meinem Code. –

Verwandte Themen