Thanks, that is exactly what I have been looking for!

On Tue, 21 Feb 2012 11:58:01 +0100
 Eik Vettorazzi <e.vettora...@uke.de> wrote:
Hi Sebastian,
how about this:

mycurve <- function (expr) {
do.call(curve,list(substitute(expr),-100,100))
}

mycurve(x^2)
mycurve(sin(x/20))
mycurve(x+x^2-x^3)

cheers

Am 21.02.2012 06:28, schrieb Sebastian Kranz:
Dear List members,

I really, like the feature that one can call R functions with mathematical expressions, e.g.

curve(x^2, 0, 1)


I wonder, how I can construct in a simple way a function like

mycurve = function (expr) {...}

such that that a call

mycurve(x^2)

has the same effect as the call

curve(x^2, -100,100)

Below is some code that works, but it seems much to complicated: it first substitutes and deparses the expression, creates a string with the new function call and then parses and evaluates the string again. Does anybody know a simpler, more elegant solution?

mycurve = function(expr) {
   # The following attempt does not work
   # curve(substitute(expr),-100,100)

   # Transform original expression to a string
   org.expr = deparse(substitute(expr))
   # Construct a string, parse it and evaluates it
   eval(parse(text=paste("curve(",org.expr,",-100,100)",sep="")))
}
mycurve(x^2)

Best regards,
Sebastian

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.


--
Eik Vettorazzi
Institut für Medizinische Biometrie und Epidemiologie
Universitätsklinikum Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/7410-58243
F ++49/40/7410-57790

--
Pflichtangaben gemäß Gesetz über elektronische Handelsregister und Genossenschaftsregister sowie das Unternehmensregister (EHUG):

Universitätsklinikum Hamburg-Eppendorf; Körperschaft des öffentlichen Rechts; Gerichtsstand: Hamburg

Vorstandsmitglieder: Prof. Dr. Guido Sauter (Vertreter des Vorsitzenden), Dr. Alexander Kirstein, Joachim Prölß, Prof. Dr. Dr. Uwe Koch-Gromus

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to