Ändern Sie eine Ganzzahl in eine bestimmte Zeichenfolge in einem data.frame

9

Ich habe einen Datenrahmen mit zwei Spalten. Die zweite Spalte enthält nur ganze Zahlen. Genauer gesagt enthält es 0,1,2,3 und einige NAs. Etwas wie das:

%Vor%

Nach was ich suche, ist ein Befehl, der 0 in ZZT die 1 in ZZU und so weiter ändert. Die NAs sollten als NAs bleiben. Wie könnte das funktionieren?

Ich habe eine for-Schleife in Kombination mit einigen if-Anweisungen versucht, aber das funktioniert nicht. Ich weiß, dass sich solche wechselnden Gedanken in R recht einfach sind, aber es scheint, dass ich einen Block in meinem Gehirn habe.

    
Tobias 02.06.2015, 16:20
quelle

3 Antworten

5

Sie können Werte mit der Funktion mapvalues aus dem plyr-Paket zuordnen. Anhand der Beispieldaten von Mike Wise's Antwort:

%Vor%

Wenn Sie bereits das dplyr-Paket geladen haben (den Nachfolger von plyr), rufen Sie diese Funktion mit plyr::mapvalues() auf, da das Laden von plyr auf dplyr problematisch ist.

    
Sam Firke 02.06.2015, 19:49
quelle
13

Das wird es tun:

%Vor%

Es verwendet einen benannten Vektor als Nachschlagetabelle. Die Klammer ist eigentlich ein Subsetting-Operator, und wenn Sie mit einem Zeichenvektor darauf zugreifen, werden die Vektornamen untergliedert.

Lesen Sie Hadley Wickhams großartiges "Advanced R" -Kapitel über das Subsetting, wenn Sie das nicht verstehen. Ссылка

    
Mike Wise 02.06.2015 16:29
quelle
5

Die Verwendung von match zum Erstellen eines Indexvektors in den Ersatzwertvektor ist ein "kanonischer" R-Ansatz (unter Verwendung des Beispiels von Mike Wise)

%Vor%

Wenn Sie sie "an Ort und Stelle" ersetzen wollten (normalerweise eine gefährliche Option), könnte das funktionieren:

%Vor%     
42- 02.06.2015 18:37
quelle

Tags und Links