On 2/9/2016 9:51 AM, Bert Gunter wrote:
Spencer, et. al.:

As I suspected, my previous "solution" was pretty stupid. Here is, I
think, the "right" way to
  go about it:

  plotxy <- function(x,...){
    mcall <- match.call(expand.dots=FALSE)
    mcall[[1]]<- plot.default
    eval(mcall)
  }


Hi, Bert, et al.:  I couldn't get that to work, either:


> XY <- data.frame(x1=1:3, y1=4:6)
> plotxy(y1~x1, XY, xlim=c(0, max(x1)))

 Error in eval(expr, envir, enclos) : object 'y1' not found


However, my original function inside "with" worked, but Bert's suggestion didn't:


> plot.sg <- function(x, ...){
+ plot(x, ...)
+ }
> with(XY, plot.sg(y1~x1, xlim=c(0, max(x1))))
> # worked, but "plotxy" with match.call didn't:
> with(XY, plotxy(y1~x1, xlim=c(0, max(x1))))

 Error in eval(expr, envir, enclos) : object 'y1' not found

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.2 (El Capitan)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods base

loaded via a namespace (and not attached):
[1] tools_3.2.3


I don't understand this, but "with" is acceptable for my current needs.


      Thanks again to Bert & Jeff.


      Spencer Graves

Best,
Bert



Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Mon, Feb 8, 2016 at 8:10 PM, Spencer Graves
<spencer.gra...@effectivedefense.org> wrote:
Hi, Jeff et al.:


On 2/8/2016 9:52 PM, Jeff Newmiller wrote:
plotxy(y1~x1, XY, xlim=c(0, max(XY$x1)))

        Yes, Thanks.


        Is there a way to do this from within "plotxy", so I can call
"plotxy" as I call "plot"?


        Thanks,
        Spencer


--
Sent from my phone. Please excuse my brevity.

On February 8, 2016 7:17:57 PM PST, Spencer Graves
<spencer.gra...@effectivedefense.org> wrote:

     I'm getting an interesting error:


         plotxy <- function(x, ...){

     +   plot(x, ...)
     + }

         XY <- data.frame(x1=1:3, y1=4:6) plotxy(y1~x1, XY, xlim=c(0,
         max(x1)))

        Show Traceback

        Rerun with Debug
        Error in eval(expr, envir, enclos) : object 'x1' not found


             The following work:


     plotxy(y1~x1, XY)
     plot(y1~x1, XY, xlim=c(0, max(x1)))


             Within "plotxy", R can't find "x1" to compute "xlim".  Is there a
     way I can make x1 available to xlim?


             Thanks,
             Spencer

     ------------------------------------------------------------------------

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

         [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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