Wie üblich habe ich eine SPSS-Datei, die ich mit spss.get
function aus Hmisc
package in R importiert habe. Ich bin mit labelled
class belästigt, die Hmisc::spss.get
zu allen Variablen in data.frame
hinzufügt und daher entfernen will.
labelled
class macht mir Kopfschmerzen, wenn ich ggplot
ausführen will oder sogar wenn ich eine kleine Analyse machen möchte! Eine Lösung wäre, labelled
class aus jeder Variable in data.frame
zu entfernen. Wie kann ich das machen? Ist das überhaupt möglich? Wenn nicht, was sind meine anderen Optionen?
Ich möchte Reediting-Variablen wirklich "von Grund auf" umgehen mit as.data.frame(lapply(x, as.numeric))
und as.character
, wo anwendbar ... Und ich möchte sicher nicht SPSS ausführen und Labels manuell entfernen (mag SPSS nicht, egal, egal um es zu installieren)!
Danke!
Sie können vermeiden, "etikettierte" Variablen in spss.get mit dem folgenden Argument zu erzeugen:, use.value.labels = FALSE.
%Vor%Der Code von Bhattacharya könnte fehlschlagen, wenn die Klasse des markierten Vektors einfach "etikettiert" wäre und nicht c ("etikettiert", "Faktor"). In diesem Fall hätte es sein müssen:
%Vor%Der von Ihnen gemeldete Fehler kann mit diesem Code reproduziert werden:
%Vor%So werde ich die Etiketten ganz los. Ähnlich wie Jyotirmoy's Lösung, funktioniert es aber sowohl für einen Vektor als auch für einen Datenrahmen. (Teilkredite an Frank Harrell)
%Vor%Verwenden Sie wie folgt:
%Vor% Sie können die Funktion read.spss
aus dem Paket foreign
ausprobieren.
Eine grobe und einfache Möglichkeit, die labelled
-Klasse loszuwerden, die von spss.get
Aber können Sie bitte ein Beispiel geben, wo labelled
Probleme verursacht?
Wenn ich eine Variable MAED
in einem Datenrahmen x
von spss.get
erstellt habe, habe ich:
So gut geschriebener Code, der (etwa) einen Faktor erwartet, sollte keine Probleme haben.
Nun, ich habe herausgefunden, dass unclass
function verwendet werden kann, um Klassen zu entfernen (wer würde das sagen, aye?!):
Es ist nicht die glücklichste Lösung, stell dir einfach einen rückübersetzenden Haufen Vektoren vor ... Wenn jemand das übertrifft, werde ich es als Antwort ansehen ...
Angenommen:
%Vor%Sie können die Beschriftungen einer Variablen namens "var1" entfernen, indem Sie Folgendes verwenden:
%Vor%Wenn Sie auch die Klasse "labbled" entfernen möchten, können Sie Folgendes tun:
%Vor%oder wenn die Variable mehr als eine Klasse hat:
%Vor%Hoffe, das hilft!