Ich habe zwei Datenrahmen und möchte die animals
Spalte in table1
durch die animals
Spalte in table2
filtern, während die mehreren Kategorien von Tieren in table1
für Katze und Hund zu halten. Das Endergebnis sollte genauso aussehen wie table1
, aber mit "Löwe" entfernt. Es sollte immer noch zwei "Katze" und zwei "Hund" geben.Filtering ein Datenrahmen von Namen in einem anderen Datenrahmen während mehreren Kategorien beibehalten
Ich bin mir nicht sicher, wie ich das als Neuling angehen soll. Ich habe das Gefühl, die Antwort beinhaltet die match
Funktion oder eine Art von Join? Ich würde eine dplyr
oder reshape2
Methode bevorzugen, wenn möglich, vor allem, wenn es eine Möglichkeit gibt, eine dplyr
Join-Funktion zu verwenden. Ich bin auch nicht sehr erfahren mit der Basisfunktion merge
. Hier
ist der Code für die beiden Datenrahmen:
table1 <- data.frame(id=c(1:7), animal=c("cat","cat","dog","dog","parakeet","lion","duck"))
table2 <- data.frame(id=c(1:4), animal=c("cat","dog","parakeet","duck"))
'semi_join' gibt mir inkonsistente Ergebnisse hier (also eigentlich ein anderes Ergebnis zu geben, wenn der Code ein zweites Mal ausgeführt wird), aber nie die gewünschten, die es so aussehen mag ... Buggy, so scheint es. – alistaire
Inkonsistent zwischen Aufrufen auf den gleichen Daten oder ...? – jaimedash
Ja. Ich habe ein paar andere Pakete dazwischen aktualisiert, aber das ist die einzige Änderung. Es gibt hier ein Problem. – alistaire