Re: [R-pkg-devel] Recommendations about adding options to a package in order to change default values of some functions on-the-fly

2018-09-13 Thread Samuel

Thanks to all.
Best.

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Recommendations about adding options to a package in order to change default values of some functions on-the-fly

2018-09-06 Thread David Hugh-Jones
Hi all,

A simple solution - if indeed you want to go down this route - is to use
options() and getOption(), ensuring all options are namespaced, e.g. by
prefixing them with the package name.

David

On Thu, 6 Sep 2018 at 17:15, Alexandre Courtiol <
alexandre.court...@gmail.com> wrote:

> Dear Samuel,
>
> Many may object (for good reasons) that adding options would clash with
> functional paradigm, but it is possible.
> I don't know about the least worse practice but as far as I would do it,
> you could:
>
> 1. directly write and then read elements in the (hidden) list .Options that
> is present in the global environment:
> options(test = "blabla") ## add element in .Options
> .Options$test ## read element (for use in your own function)
>
> 2. you could also create your own alternative to options(), as ex:
> https://github.com/courtiol/IsoriX/blob/master/IsoriX/R/options.R
> Option 2 has the benefits of not risking conflict with existing names in
> .Options and it would thus also not mess up the way other packages may
> work.
> Option 1 uses what is already in place.
>
> I hope this help,
> Best
>
> Alex
>
> On Thu, 6 Sep 2018 at 17:18, Samuel  wrote:
>
> > Hi,
> >
> > I would like to change the default value of some arguments of some
> > functions in a package of mine. I don't want to change explicitly the
> > calls in the many scripts that have been written. For example, I would
> > to change the delimiter in all write.mytable() without changing any
> > calls it and without changing the default value currently assigned to
> > that delimiter in the declaration of this function. What I would like is
> > to add a command at the beginning of the scripts that says "since now,
> > the delimiter is ;".
> >
> > I am thinking about setting global options that those functions will
> > read and use to overwrite the default values. Of course the
> > write.mytable function has to be modify to exploit these settings, but
> > none of the scripts. I think about something similar to the par() and
> > options() functions.
> >
> > I noticed the settings package, but I would like to know if there is a
> > simple and recommended solution without adding any dependency.
> >
> > Hope my question is clear.
> >
> > Thanks for any advice,
> > Samuel
> >
> > __
> > R-package-devel@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >
>
>
> --
> Alexandre Courtiol
>
> http://sites.google.com/site/alexandrecourtiol/home
>
> *"Science is the belief in the ignorance of experts"*, R. Feynman
>
> [[alternative HTML version deleted]]
>
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

[[alternative HTML version deleted]]

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Recommendations about adding options to a package in order to change default values of some functions on-the-fly

2018-09-06 Thread Alexandre Courtiol
Dear Samuel,

Many may object (for good reasons) that adding options would clash with
functional paradigm, but it is possible.
I don't know about the least worse practice but as far as I would do it,
you could:

1. directly write and then read elements in the (hidden) list .Options that
is present in the global environment:
options(test = "blabla") ## add element in .Options
.Options$test ## read element (for use in your own function)

2. you could also create your own alternative to options(), as ex:
https://github.com/courtiol/IsoriX/blob/master/IsoriX/R/options.R
Option 2 has the benefits of not risking conflict with existing names in
.Options and it would thus also not mess up the way other packages may work.
Option 1 uses what is already in place.

I hope this help,
Best

Alex

On Thu, 6 Sep 2018 at 17:18, Samuel  wrote:

> Hi,
>
> I would like to change the default value of some arguments of some
> functions in a package of mine. I don't want to change explicitly the
> calls in the many scripts that have been written. For example, I would
> to change the delimiter in all write.mytable() without changing any
> calls it and without changing the default value currently assigned to
> that delimiter in the declaration of this function. What I would like is
> to add a command at the beginning of the scripts that says "since now,
> the delimiter is ;".
>
> I am thinking about setting global options that those functions will
> read and use to overwrite the default values. Of course the
> write.mytable function has to be modify to exploit these settings, but
> none of the scripts. I think about something similar to the par() and
> options() functions.
>
> I noticed the settings package, but I would like to know if there is a
> simple and recommended solution without adding any dependency.
>
> Hope my question is clear.
>
> Thanks for any advice,
> Samuel
>
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>


-- 
Alexandre Courtiol

http://sites.google.com/site/alexandrecourtiol/home

*"Science is the belief in the ignorance of experts"*, R. Feynman

[[alternative HTML version deleted]]

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


[R-pkg-devel] Recommendations about adding options to a package in order to change default values of some functions on-the-fly

2018-09-06 Thread Samuel

Hi,

I would like to change the default value of some arguments of some 
functions in a package of mine. I don't want to change explicitly the 
calls in the many scripts that have been written. For example, I would 
to change the delimiter in all write.mytable() without changing any 
calls it and without changing the default value currently assigned to 
that delimiter in the declaration of this function. What I would like is 
to add a command at the beginning of the scripts that says "since now, 
the delimiter is ;".


I am thinking about setting global options that those functions will 
read and use to overwrite the default values. Of course the 
write.mytable function has to be modify to exploit these settings, but 
none of the scripts. I think about something similar to the par() and 
options() functions.


I noticed the settings package, but I would like to know if there is a 
simple and recommended solution without adding any dependency.


Hope my question is clear.

Thanks for any advice,
Samuel

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel