[R] calling plot
Spencer Graves
spencer.graves at effectivedefense.org
Tue Feb 9 17:33:01 CET 2016
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.graves at 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.graves at 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 at 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 at 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.
More information about the R-help
mailing list