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.
  • [R] How ... Remko Duursma
    • Re:... Polwart Calum (County Durham and Darlington NHS Foundation Trust)
      • ... baptiste auguie
      • ... Remko Duursma
        • ... Paul Hiemstra
          • ... Remko Duursma
            • ... Paul Hiemstra
              • ... David Winsemius
      • ... Polwart Calum (County Durham and Darlington NHS Foundation Trust)

Reply via email to