On Sep 14, 2009, at 8:00 AM, Paul Hiemstra wrote:
I offer my sincere apologies for not reading the e-mail carefully,
your example is indeed reproducible. When you stop using the 'with'
function, this is I think what you would like:
myplot2 = function(formula, data, ...) {
plot(formula, data = data, ..., pch = 19, col = c("blue","red")
[data$treatment])
}
myplot2(Ymeas~Xmeas, mydfr)
A possible problem occurs when you want to redefine 'pch' or 'col',
e.g.:
myplot2(Ymeas~Xmeas, mydfr, pch = 20)
Error in localWindow(xlim, ylim, log, asp, ...) :
formal argument "pch" matched by multiple actual arguments
Generally one puts the defaults to arguments in the invocation section
of the function
myplot2 = function(formula, data, pch = 19,...) {
plot(formula, data = data, ..., col = c("blue","red"))
}
myplot2(Ymeas~Xmeas, mydfr, pch = 20) # no error
If you wanted to change the colors you could also use a construction
like:
..., firstcol="red", seccol="blue",
and then in the body of the function:
..., col=c(firstcol, seccol)[data$treatment]
snip
On Mon, Sep 14, 2009 at 6:08 PM, Polwart Calum (County Durham and
Darlington NHS Foundation Trust) <calum.polw...@nhs.net> wrote:
# I tried defining a function like this
myplot <- function(...)plot(..., pch=19, col=c("blue","red")
[treatment])
# So i can call it like this:
with(mydfr, myplot(Xmeas, Ymeas))
# but:
Error in plot.xy(xy, type, ...) : object 'treatment' not found
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.