[R] Getting the real names of variables within functions
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Sep 20 16:10:28 CEST 2004
On Mon, 20 Sep 2004 10:00:19 -0400, adelmaas at MUSC.EDU wrote :
>Greetings.
>
>These days I find myself writing a lot of functions to handle routine
>things. One of these is a function to create a scatterplot of
>variables and draw a lowessed line so I can get some idea if there's
>any relationship between them.
>
>lowessed.plot <- function(x, y)
>{ plot(x, y)
> lines(lowess(x, y))
>}
>
>However, there's a slight problem: the plot axes come out labeled "x"
>and "y", which isn't what I want. I want the plot axes labeled with
>the names of the variables I passed into lowessed.plot for x and y. Is
>there any way to do that? Thanks in advance for any help anyone can
>provide.
You could do this with
plot(x, y, xlab=deparse(substitute(x)), ylab=deparse(substitute(y)))
But it's better to add two arguments to the function with those as
default values, then pass them on to plot(); that way you can change
the labels if you want. And add dots for other customization.
For example,
lowessed.plot <- function(x, y, xlab=deparse(substitute(x)),
ylab=deparse(substitute(y)), ...)
{ plot(x, y, xlab=xlab, ylab=ylab, ...)
lines(lowess(x, y))
}
Duncan Murdoch
More information about the R-help
mailing list