Ich habe Probleme mit Formeln, Umgebungen und survfit()
.R Formel in Survfit
Die Dinge funktionieren gut für lm()
, aber sie scheitern für survfit()
.
Allgemeine Problemstellung:
Ich bin eine Reihe von Formeln auf bestimmte Daten passen. Also rufe ich die Modellierungsfunktion mit der als Variable übergebenen Formel auf. Später, Ich möchte mit der Formel aus dem angepassten Objekt arbeiten.
(Aus meiner naiven Sicht kommt das Problem von survfit nicht die Umwelt aufnehmen.)
Detailliertes Beispiel
Erwartetes Verhalten wie in lm()
gesehen:
library("plyr")
preds <- c("wt", "qsec")
f <- function() {
lm(mpg ~ wt, data = mtcars)
}
fits <- alply(preds, 1, function(pred)
{
modform <- reformulate(pred, response = "mpg")
lm(modform, data = mtcars)
})
fits[[1]]$call$formula
##modform
formula(fits[[1]])
## mpg ~ wt
## <environment: 0x1419d1a0>
obwohl
Selbst fits[[1]]$call$formula
löst sich auf modform
Ich kann immer noch die ursprüngliche Formel mit formula(fits[[1]])
erhalten.
Aber die Dinge nicht für survfit()
:
library("plyr")
library("survival")
preds <- c("resid.ds", "rx", "ecog.ps")
fits <-
alply(preds, 1, function(pred)
{
modform <- paste("Surv(futime, fustat)", pred, sep = " ~ ")
modform <- as.formula(modform)
print(modform)
fit <- survfit(modform, data = ovarian)
})
fits[[1]]$call$formula
## modform
formula(fits[[1]])
## Error in eval(expr, envir, enclos) : object 'modform' not found
Hier (und im Gegensatz zu lm-fits), formula(fits[[1]])
nicht Arbeit!
Also, meine spezifische Frage ist: Wie kann ich die Formel wieder zu fits[[1]]
passen?
'passen
rawr
Danke! Das funktioniert. Ich nehme an, dass es keine Möglichkeit gibt, die Formel von 'passt [[1]]' wiederherzustellen, wie es im Beispielcode der Frage erzeugt wird. In diesem Fall: Wenn Sie Ihren Kommentar als Antwort schreiben, akzeptiere ich das. – Andreas