2017-12-07 1 views
-2

Ich habe zwei Tabellen, die in der Struktur data.frame sind. Tabelle 1 enthält eine Spalte mit 200 Gen-IDs (Buchstaben und Zahlen) und Tabelle 2 enthält eine Liste von 4000 Gen-IDs (in Zeilen) sowie 20 zusätzliche Spalten. Ich möchte diese beiden Tabellen schneiden und eine neue Tabelle 3 erzeugen, die die 200 Gen-IDs sowie die zugehörigen Informationen in den 20 Spalten enthält.Wie überschneide ich zwei data.frames in R?

table3 < - tabelle1% n% table2

+1

Willkommen bei SO! Bitte lesen Sie [fragen] und [mcve] ... dann ** bearbeiten Sie Ihre Frage! ** – jogo

+1

Willkommen bei SO. Ihre Frage bezieht sich auf eine gut dokumentierte Aufgabe. Sie können nach 'left_join' und' right_join' aus dem Paket 'dplyr' schauen. – ANG

Antwort

1

Sie wollen so etwas wie

table3 <- merge(table1, table2, by.x="id", by.y="id", all.x=T, all.y=F) 

Sie könnten auch in der Lage sein subsetting wie dies mit etwas zu tun:

table3 <- table2[table2$id %in% table1$id,] 

Ein Reprex hätte diesen Beitrag gemacht eher eine gute Antwort bekommen, aber Sie hätten in der Lage sein, etwas zu finden, um Ihnen mit ein wenig Suche zu helfen. Wenn diese nicht funktionieren, weil Sie ein einzigartiges Problem haben, das niemand zuvor gestellt hat, geben Sie einen Reprex und wir können versuchen, Ihnen alternative Lösungen zu geben.

bearbeiten: für ein wenig mehr Kontext, here's eine ähnliche Frage, die ich letzte Woche beantwortet und here's einen tollen Beitrag zum Verständnis verbindet.

+1

Vielen Dank. Ich kann dir nicht sagen, wie viel ich vor deinem Beitrag dazu gesucht habe. Definitiv lernen, wie man diese fantastische Ressource besser findet. Danke noch einmal. – Jordan

+0

Ich habe gelernt, dass eine meiner wertvollsten Fähigkeiten nicht in der Lage ist, Probleme zu lösen, sondern die Schlüsselwörter zu kennen, nach denen ich suchen kann, um Lösungen für meine Probleme zu finden. – seeellayewhy

0

Ich empfehle das Paket dplyr. Es funktioniert meiner Meinung nach intuitiver als merge.

Sie können einfach eingeben:

table3 <- left_join(table1, table2, by = "unique_id") 
+0

OuterJ <- Zusammenführen (x = Okt, y = Sept, durch = "KONTAKT_ID", alle = WAHR) LinksJ <- Zusammenführen (x = Okt, y = Sept, durch = "CONTACT_ID", all.x = WAHR) RightJ <- Zusammenführen (x = Okt, y = Sept, durch = "CONTACT_ID", all.y = TRUE) CrossJ <- Zusammenführen (x = Okt, y = Sept, durch = NULL) – ryguy72

Verwandte Themen