Pass-Formel, um eine Funktion in R?
Jede Hilfe bei diesem würde sehr geschätzt. Ich bin mit dem Lumley-Umfrage Paket-und versuche zu vereinfachen mein code, aber getroffen haben eine leichte Haken.
Den svymean Funktion aus dem Paket wie folgt aufgerufen wird, in meinem code, wobei das erste argument ist eine Formel, die angibt, welche Variablen ich will, und das zweite argument ist, dass dataset:
svymean(~hq_ehla, FraSvy, na.rm=TRUE)
Ich versuche, eine Funktion erstellen, die das herausziehen der Mittelwert (Anteile) und Standardfehler für kategoriale Variablen, also habe ich die folgende Funktion:
stats <- function(repstat, num) {
estmean <- as.numeric(round(100 * repstat[num], digits=0))
estse <- round(100 * sqrt(attributes(repstat)$var[num,num]), digits=1)
return(list(mean=estmean, se=estse))
}
Das funktioniert, also wenn ich das herausziehen der Mittelwert und se von meinem ersten Kategorie, verwende ich zum Beispiel:
stats(svymean(~hq_ehla, FraSvy, na.rm=TRUE), 1)$mean
stats(svymean(~hq_ehla, FraSvy, na.rm=TRUE), 1)$se
Was ich möchte in der Lage sein zu tun ist, vereinfacht dies etwas viel kürzer, wo würde ich vielleicht nur noch schreiben:
stats(FraSvy, "hq_ehla", 1)$mean
Oder so ähnlich. Problem ist, dass ich kann nicht herausfinden, wie übergeben Sie eine Formel auf eine Funktion mit einer Variablen-Namen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
reformulate
zu konstruieren, die Formel und rufensvymean
innerhalb Ihrer Funktion. Verwenden...
übergebenna.rm
oder anderen Argumente zusvymean
Haben Sie einen Blick auf diese Antwort für mehr details auf programmitically erstellen Formel-Objekte
Oder Sie passieren konnten, ein Formel-Objekt innerhalb der Funktion.
den
coef
undSE
Funktionen machen Ihr Leben leichter..