2016-04-01 13 views
0

Ich möchte das Ergebnis des boxtidwell speichern, um Code zu schreiben, um eine Automatisierung zu erreichen und die Variablen manuell zu transformieren. Siehe Beispiel unten:r- wie das Ergebnis von boxtidwell in einen Datenrahmen/Matrix gespeichert wird

>boxTidwell(prestige ~ income + education, ~ type + poly(women, 2), data = Prestige) 

##   Score Statistic p-value MLE of lambda 
## income   -4.482406 0.0000074 -0.3476283 
## education  0.216991 0.8282154  1.2538274 
## iterations = 8 

Weil ich will nicht unter die Variable manuell wie der Code zu transformieren:

>Prestige$income <- (Prestige$income)^(-0.3476283) 

Wenn es viele Variablen umgewandelt werden müssen, dann wird es so zeit verbrauchen. Ich habe matrix und data.frame vergeblich versucht.

Ich habe eine Weile gesucht, aber scheint vergebens, vielen Dank für Anregungen und Ideen im Voraus

Antwort

1

Es ist zugänglich in box$result, z.B.

box$result[,"MLE of lambda"] 

    income education 
-0.3476283 1.2538274 

so Ihr Code oben wird (derb)
Prestige$income <- (Prestige$income)^box$result[1,3]

Im Allgemeinen zu prüfen, was in Ihrem Objekt Gebrauch ist str

+0

Danke, es nützlich ist. Gibt es jedoch noch Raum für Verbesserungen? Zum Beispiel werden wir vermeiden können, den Variablennamen "Einkommen" (z. B. "Prestige $ Einkommen") manuell in Ihren Code einzugeben. Es sollte allgemeiner wie folgt aussehen: Prestige $ result [1,0] <- (Prestige $ income)^box $ result [1,3] '. Da viele Variablen transformiert werden müssen, können wir nicht alle Variablen von Hand eingeben. – Samoth

+0

Ich bin mir nicht sicher, was du meinst. Sie haben Zugriff auf die gesamte Matrix der Variablen in 'box $ result'. Es hat 2 Zeilen und 3 Spalten und Sie können es indizieren, wie Sie wollen. – Eugene