Wählen Sie nur die erste Zeile aus, wenn Sie Datenrahmen mit mehreren Übereinstimmungen zusammenführen.

Ich habe zwei Datenrahmen "data" und "scores" und möchte sie in der Spalte "id" zusammenführen:

data = data.frame(id = c(1,2,3,4,5),
                  state = c("KS","MN","AL","FL","CA"))
scores = data.frame(id = c(1,1,1,2,2,3,3,3),
                    score = c(66,75,78,86,85,76,75,90))
merge(data, scores, by = "id")                  
semi_join(data, scores, by = "id")                  

In den "Scores" -Daten gibt es "id" mit mehreren Beobachtungen, wobei jede Übereinstimmung nach dem Join eine Zeile erhält. Sehen?merge:

Wenn es mehr als eine Übereinstimmung gibt, tragen alle möglichen Übereinstimmungen jeweils eine Zeile bei.

Ich möchte jedoch nur die Zeile behalten, die dem @ entsprichzuers match from thescores Tabelle

Ein Semi-Join wäre nett gewesen, aber ich kann die Punktzahl nicht aus der rechten Tabelle auswählen.

Irgendwelche Vorschläge

Antworten auf die Frage(6)

Ihre Antwort auf die Frage