R - Excel-VLOOKUP-Äquivalent - Nachschlagen, ersetzen [duplizieren]
Frage
Ich habe so ziemlich überall gesucht und kann die Antwort darauf nicht finden;R entspricht VLOOKUP in Excel.Mit VLOOKUP kann ich in einer Spalte nach einem bestimmten Wert suchen und ihn auf jede Zeile meines Datenrahmens anwenden.
In diesem Fall möchte ich das Land finden, in dem sich eine bestimmte Stadt befindet (aus einer Datenbank) und den Namen des Landes in einer neuen Spalte zurückgeben.
Also habe ich diese Datenbank:
countries <- c("UK", "US", "RUS")
cities <- c("LDN", "NY", "MOSC")
db <- cbind(countries, cities)
db
countries cities
[1,] "UK" "LDN"
[2,] "US" "NY"
[3,] "RUS" "MOSC"
Und möchten das Land finden, in dem sich diese Städte befinden (ersetzen Sie NA), basierend auf der obigen Datenbank:
df
countries cities
[1,] NA "LDN"
[2,] NA "NY"
[3,] NA "MOSC"
Ich habe absolut keine Ahnung, wie ich das auf R machen soll.
Lösung
Sie führen eine beitreten was in R mit der Funktion ausgeführt wird merge
merge(db, df)
Mit dem dplyr
paket ermöglicht natürlichere Verben:
library(dplyr)
inner_join(db, df)
oder vielleicht (wenn Sie möchten, dass Nicht-Übereinstimmungen angezeigt werden;sehen ?left_join
für weitere Informationen):
left_join(db, df)
Andere Tipps
Hier ist ein anderer Ansatz:
library(qdapTools)
df[, 1] <- df[, 2] %l% db[, 2:1]