ich suche eine Lösung für folgendes Datenzuordnungsproblem.
Ausgangspunkt ist die Tab_alt, in der einer Variablen y bereits in drei Fällen der Wert einer Variable x zugeordnet wurde. In den letzten 3 Zeilen fehlt der x-Wert noch, daher NA.
Tab_alt:
x y
a2 P01
d4 P02
d1 P03
NA P04
NA P05
NA P06
Der Vektor x_neu enthält drei x-Werte ("r5","d4","gt"). Einer („d4“) ist bereits in Tab_alt enthalten, die zwei anderen noch nicht. Die Daten dieses Vektors sollen nun mit den Werten in Tab_alt abgeglichen, Tab_alt gegebenfalls angeglichen und als Tab_neu gespeichert werden:
Inhaltlich wäre die Vorgehensweise folgende:
1. Überprüfe für jeden Wert in x_neu, ob er in der Spalte Tab_alt$x bereits vorkommt.
2. Wenn ja, mache nichts.
3. Wenn nein, ersetze den ersten NA-Wert in Tab_alt$x mit dem jeweiligen x-Wert und speichere dies.
4. Wiederhole dies für jeden Wert in x_neu.
5. Speichere das Ergebnis als Tab_neu.
Im konkreten Fall wäre das gewünschte Ergebnis folgende Tab_neu:
x y
a2 P01
d4 P02
d1 P03
r5 P04
gt P05
NA P06
Das sollte doch über eine Schleifenfunktion machbar sein?
Unten findet Ihr den Code, um das Beispiel zu generieren.
Für Hilfe bin ich wie immer sehr dankbar.
Herzliche Grüße
Jörg
Code: Alles auswählen
x0<-c("a2","d4","d1","NA","NA","NA")
y0<-c("P01","P02","P03","P04","P05","P06")
Tab_alt<-cbind(x=x0,y=y0)
x_neu<-c("r5","d4","gt")
x1<-c("a2","d4","d1","r5","gt","NA")
y1<-c("P01","P02","P03","P04","P05","P06")
Tab_neu<-cbind(X=x1,Y=y1)