[R] Trapping option settings
David A Vavra
davavra at verizon.net
Wed Jul 18 22:46:11 CEST 2012
Thanks. Also helpful.
DAV
-----Original Message-----
From: William Dunlap [mailto:wdunlap at tibco.com]
Sent: Wednesday, July 18, 2012 4:20 PM
To: David A Vavra; 'jim holtman'
Cc: r-help at r-project.org
Subject: RE: [R] Trapping option settings
Try using trace(), as in
trace(options, quote(print(as.list(sys.calls()))))
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On
> Behalf Of David A Vavra
> Sent: Wednesday, July 18, 2012 1:00 PM
> To: 'jim holtman'
> Cc: r-help at r-project.org
> Subject: Re: [R] Trapping option settings
>
> Jim,
>
> Thanks.
>
> It wasn't sure if merely overriding the options function by placing one in
> the global environment would guarantee it would be the one actually
called.
> In any case, I didn't know how to identify the caller. This is quite
helpful
> and looks promising. I'll give it a try.
>
> DAV
>
>
>
>
> -----Original Message-----
> From: jim holtman [mailto:jholtman at gmail.com]
> Sent: Monday, July 16, 2012 9:59 PM
> To: David A Vavra
> Cc: r-help at r-project.org
> Subject: Re: [R] Trapping option settings
>
> Here is one way by redefining 'options' so you can check for 'width'
> and then call the 'options' in 'base':
>
>
> > options <- # define 'options' in Global
> + function(...)
> + {
> + args <- list(...) # get arguments
> + if ('width' %in% names(args)){ # see if 'width' is in them
> + .caller <- sys.calls() # get where called from
> + if (length(.caller) == 1) # called from command line
> + .caller <- "Rgui"
> + else .caller <- as.character(.caller[[length(.caller) - 1]])[1]
> + cat("width being changed:", args[['width']], "Called from",
> .caller, '\n')
> + }
> + base::options(...) # call the real options
> + }
> >
> >
> > options(width = 123) # test at command line
> width being changed: 123 Called from Rgui
> > f.myfunc <- function() options(width = 456) # within a function
> > f.myfunc()
> width being changed: 456 Called from f.myfunc
> >
>
>
>
>
> On Mon, Jul 16, 2012 at 9:01 PM, David A Vavra <davavra at verizon.net>
wrote:
> > Something has been changing the setting the width option to 10000 and
not
> > resetting it. It does this intermittently. What I would like to do is
trap
> > changing the setting so I can determine where the change is occurring
and
> > hopefully fix it.
> >
> > Is there any easy way to do this?
> >
> > ______________________________________________
> > R-help at 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.
>
>
>
> --
> Jim Holtman
> Data Munger Guru
>
> What is the problem that you are trying to solve?
> Tell me what you want to do, not how you want to do it.
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list