Amelia wird verwendet, um fehlende Werte in einem data.frame-Eingang zu imputieren. Dieser Prozess scheint zu funktionieren. Der Eingabedatensatz weist Spaltenüberschriften header_1, header_2 usw. Der amelia Befehl lautet:r-Klasse Amelia-Objekt zurück zu data.frame
imp1<-amelia(input, m=1, idvars = idvars)
Das Ergebnis aus
str(imp1$imputations, 1)str(imp1$imputations, 1)
wird:
$ imp1:'data.frame': 1725 obs. of 29 variables:
- attr(*, "class")= chr [1:2] "mi" "list"
Der Befehl
xxx<-as.data.frame(imp1[[1]])
funktioniert zum Erstellen von Daten Rahmen, aber die Variablennamen, Spaltenüberschriften wurden
umbenanntimp1.header_1
imp1.header_2
etc
Was ist der richtige Weg amelia ausführen, um die ursprüngliche Variable zu behalten, Header-Namen? Wie kann ein data.frame mit den ursprünglichen Spaltenüberschriften abgerufen werden?
Können Sie eine Beschreibung der Punkt (a.out $ imputations $ imp1) Syntax. Der Befehl yyy <- (a.out $ imputations $ imp1) erzeugt ein korrektes Ergebnis. –
Sie bekommen also, was Sie wollen? Wenn Sie sich 'str (a.out)' anschauen, können Sie sehen, dass es sich um eine Liste mit benannten Elementen handelt. Der '$ imputations' Teil bringt Sie in eine Liste innerhalb der Liste (mit den impudierten Datensätzen), und dann erhält der' $ imp1' Teil das spezifische Element aus der Liste (ein Datenrahmen). Wenn Sie es erneut mit 'm = 4 'ausführen, sehen Sie, dass' $ imputations 'eine Liste von vier Datensätzen ist, einer für jede Imputation. Sie können jeden mit 'a.out $ imputations $ imp1',' a.out $ Imputationen $ imp2', 'a.out $ Imputationen $ imp3', etc. aufrufen. –