Wie ersetze ich numerische Codes durch Wertelabels aus einer Nachschlagetabelle?

8

Diese Frage bezieht sich auf diese Frage , aber nicht ganz dasselbe.

Sagen wir, ich habe diesen Datenrahmen,

%Vor%

und eine Zeichenfolge mit lesbaren Informationen über die Berufscodes. Sag,

%Vor%

Nun suche ich nach dem einfachsten Weg, um die Werte in df$profession durch den Text in profession.code zu ersetzen. Vorzugsweise ohne Verwendung spezieller Bibliotheken, außer es verkürzt den Code signifikant.

Ich möchte, dass mein Endergebnis

ist %Vor%

Jede Hilfe würde sehr geschätzt werden.

Danke, Eric

    
Eric Fail 03.04.2012, 22:45
quelle

3 Antworten

10

Sie können es so machen:

%Vor%

Beachten Sie, dass ich einen 0 -Eintrag in Ihrem profession.code -Vektor hinzufügen musste, um diese Nullen zu berücksichtigen.

BEARBEITEN: Hier ist eine aktualisierte Lösung, um Erics Kommentar unten zu berücksichtigen, dass die Daten eine beliebige Anzahl von Berufscodes enthalten können, für die es keine entsprechenden Beschreibungen gibt:

%Vor%     
flodel 03.04.2012, 23:02
quelle
3

Ich spielte damit herum und das ist meine aktuelle Lösung, die das car -Paket verwendet.

%Vor%

Immer noch interessant, wenn jemand andere Vorschläge für eine Lösung hat. Ich würde es bevorzugen, es nur mit der Basisfunktion in R zu tun.

    
Eric Fail 04.04.2012 01:25
quelle
1

Mir persönlich gefällt die Art und Weise, wie das arules -Paket mit diesem Problem umgeht, indem die Funktion decode verwendet wird. Aus der Dokumentation:

%Vor%

Vorteil ist, dass das Paket auch die Funktionen encode und recode bietet. Ihr jeweiliger Zweck ist einfach, glaube ich.

    
ATN 19.02.2014 11:36
quelle