ich möchte country codes (buchstaben) in einem numerischen country code überschreiben. den schlüssel (also buchstaben und numerischen country code) habe ich aus einer .csv importiert. ich habe mir folgenden nested for loop mit if abfrage überlegt aber leider läuft das ganze nicht. mit folgendem fehler
Error in Ops.factor(doc_report$nationality, countries$code3[n]) :
level sets of factors are different
i<-1
n <- 1
for (i in 1:nrow(doc_report)) {
for (n in 1:nrow(countries)) {
if(doc_report$nationality[i] == countries$code3[n])
doc_report$nationality[i] <- countries$numcode[n]
else
if(doc_report$nationality[i] == "NA")
doc_report$nationality[i] <- 000
}
}
Das sieht mir sehr nach einem update-join aus. Aber man kann die gewünschten Daten auch erstmal als zusätzliche Spalte einfügen.
(dann wird es in einem ersten Schritt einfach merge())
Faktoren sind dabei durchaus hinderlich. Insofern kann ich die Empfehlung von Edi nur bekräftigen.