2016-07-05 11 views
1

Gibt es einen Befehl, um zu sehen, wie eine kategoriale Variable codiert ist?R CATEGORICAL VARIABLE VALUE

Beispiel, ich habe eine Variable namens HbA1c und die Kategorien, die ich sehe, sind < 5,7 und> = 5,7. Ich möchte wissen, welchen Wert < 5,7 und> = 5,7 nehmen (wenn es eine 0 oder eine 1 oder eine 2 ist). Ich brauche es für die Regressionsanalyse.

Es tut mir leid, wenn diese Frage bereits angesprochen wurde, aber ich konnte den Beitrag nicht finden.

Vielen Dank im Voraus.

Antwort

3

wenn x ist ein Faktor (der technische Name für eine kategoriale Variable in R), dann levels(x) gibt Ihnen die Ebene, um so etwas wie

setNames(1:length(levels(f)),levels(f)) 
## a b c 
## 1 2 3 

werden Sie eine Korrespondenztabelle.

Ihre Frage in den Kommentaren ist nicht ganz klar, aber wenn man bei Null beginnend eine Regression mit numerischen Werten laufen wollte ich würde versuchen, so etwas wie:

mydata$n <- as.numeric(mydata$f)-1 

(die numerischen Codes im Zusammenhang mit Faktoren laufen Sie immer von 1 bis N, das gibt Ihnen eine numerische Variable, die von 0 bis N-1 läuft. Dann können Sie eine Regression in etwa so aus:

lm(y~n,data=mydata) 
+0

verwenden ich den folgenden Befehl ein: 'Namen (1: Länge (Level (DAT1 $ HbA1ckatnorm)), Ebene (DAT1 $ HbA1ckatnorm))' und ich bekomme einen Tisch was die Level als '1 2' anzeigt. Wenn ich nun die Variable umcodieren will, verwende ich die 'recode' Funktion aus' library car'. Mein Code sieht aus wie 'recode (dat1 $ HbA1ckatnorm, '' 1 '=' 0 ';' 2 '=' 1 '") 'aber ich bekomme einen Fehler mit' Levels: <5.7 > = 5.7 'und natürlich die Funktion recode funktioniert nicht. –