Ich versuche, eine Variable zu verwenden, die einen Funktionsnamen als Zeichenkette speichert, um eine Kurve zu zeichnen. Etwas wie folgt aus:Übergeben Sie den Ausdruck als Variable an die Kurve
f1 <- function(x) 0*x
f2 <- function(x) 1 + 0*x
f3 <- function(x) 2 + 0*x
fn <- "f1"
plot.new()
plot.window(xlim = c(0, 1), ylim = c(-1, 3))
curve(get(fn), add = TRUE)
Error in curve(get(fn), add = TRUE) :
'expr' must be a function, or a call or an expression containing 'x'
curve(f1, add = TRUE)
curve(f2, add = TRUE)
curve(f3, add = TRUE)
Ich weiß, ich bin etwas fehlt, mit wie curve
die Ausdrücke mit Ersatzgriffe, oder wie get
die Funktion ist vorbei. Ich bin besonders verwirrt, weil class(get(fn))
"Funktion" zurückgibt.
Und wenn man wollte zusätzliche Argumente hinzufügen, wie 'add = true' ändern, würde es sieht so aus: 'do.call (curve, list (as.name (fn), add = TRUE))' –
Sie können das Problem auch umgehen, indem Sie zuerst die Auswertung '{get (fn) -> f; curve (f, add = WAHR)} ' –