Weisen Sie der Zeichenkette einen Wert zu

8

Ich habe Antworten auf eine Umfrage in meinem data.frame(Analysis) , einschließlich:

Q1 <- c("Agree", "Strongly Agree", "Disagree", "Neither", "Agree", "Neither")

Ich möchte jeder Antwort einen Wert zuweisen, basierend auf ihrem Level. Beispiel: "Strongly Agree" erhält eine 2, während "Agree" eine Punktzahl von 1 erhält. Meine gewünschte Ausgabe wäre:

Q1 <- c("Agree", "Strongly Agree", "Disagree", "Neither", "Agree", "Neither")
Q1_Score <- c(1, 2, -1, 0, 1, 0)

Das scheint eine einfache Frage zu sein, aber ich habe Schwierigkeiten, eine Antwort zu finden!

Danke.

    
user2716568 01.06.2015, 00:58
quelle

3 Antworten

5

Sie können revalue aus dem Paket plyr verwenden, um eine neue Faktorspalte in Ihrem Datenrahmen Analysis zu erstellen, wobei die Ebenen umbenannt werden:

%Vor%     
Tim Biegeleisen 01.06.2015, 01:10
quelle
5

Sie könnten die Werte und die Codes in einen separaten Datenrahmen setzen und dann match verwenden, um sie in Ihren Hauptdatenrahmen zu übernehmen:

%Vor%     
jalapic 01.06.2015 01:01
quelle
2

Sie können sie in einer Faktorvariablen entsprechend ordnen und dann wie folgt in Zahlen umwandeln:

%Vor%

Sie subtrahieren 2, weil die niedrigste Faktorstufe als 1 gespeichert wird und die niedrigste Stufe -1 sein soll.

Alternativ ein Einzeiler, der anstelle von Zahlen eine Faktorvariable zurückgibt:

%Vor%     
Jota 01.06.2015 01:05
quelle

Tags und Links