2017-09-06 1 views
0

Ich versuche eine Funktion zu schreiben, die einen Ausdruck als Argument nimmt, und dann diesen Ausdruck im Kontext von 1) einem anderen Argument der Funktion und 2) einem Objekt, das innerhalb der Funktion selbst erzeugt wird, auswertet.Wie bewertet man ein Argument eines Funktionsaufrufs mit einem anderen Argument dieses Aufrufs und ein innerhalb der Funktionsumgebung in R erstelltes Objekt?

Ich habe einige Probleme, die Umwelt zu arbeiten. Weiß jemand, wie man das macht?

myfun <- function(es = .5, model = es * x[, 1]){ 
    x <- matrix(rnorm(300), ncol = 3) 
    mu <- eval(model) 
    mu 
} 

myfun(es = .8, model = es * x[, 1] + es * x[, 1]^2 + es * x[, 1]^3) 

Ergebnisse in dem Fehler: Fehler in eval (Modell): Objekt 'es' nicht

gefunden

Irgendwelche Vorschläge?

+0

Sie verwenden können 'mu <- eval (parse (text = Modell))' und 'Modell 'als Zeichen Argument –

+0

Danke Andrey; Ich weiß, dass deine Lösung funktioniert, aber ich würde lieber verstehen, wie man eine faule Bewertung dafür verwendet. –

Antwort

0

Versuchen substitute:

myfun <- function(es = .5, model = es * x[, 1]){ 
    x <- matrix(rnorm(300), ncol = 3) 
    mu <- eval(substitute(model)) 
    mu 
} 
Verwandte Themen