[R] Some unrelated questions.

Jim Lemon jim at bitwrit.com.au
Mon May 6 23:48:37 CEST 2013

see inline

On 05/07/2013 02:14 AM, Keith S Weintraub wrote:
> Folks,
> I have been working on an R project that has a few dozen functions.
> I have some questions that are only tangentially related and might only be a difference in style.
> 1. Some of my functions take single-row data.frames as input parameters lists. I don't force the user of the function to provide all of the parameters. I use code within a function to test if a particular parameter (column-name) exists in the data.frame and if so use the value of that parameter in a test. If the parameter doesn't exist in the data.frame then some default behavior applies like so:
>         if("rollDown" %in% names(runParams)) rollDown<-runParams[["rollDown"]]
>        else rollDown<-0
> Is this good style? What are the pitfalls? Is there a better way?
Whether it is good style or not, you must have been reading my mind. 
This is more or less what I am working on to streamline the increasing 
number of arguments in functions in some of the packages I maintain. At 
the moment I am trying to work out whether it is easier to have one big 
function to complete all the arguments or a set of smaller functions for 
related groups of arguments.

> One nice thing about this method is that if I need to add a new parameter I don't have to change the signature of the function.
> 2. What is a good way to organize a project with dozens of functions in R?
Creating a package is an easy and well documented way of

1) keeping all the functions together
2) checking that everything works
3) maintaining a record of the evolution of the project

Even a handful of functions can benefit from packaging.

> 3. My project involves a fair amount of simulation. I am not talking hours but some of my "runs" take up to 30 minutes.
> Suppose I have a "control" function that calls a number of other functions that might benefit from compilation (using the compiler package). Is it better to compile the called functions inside or outside the control function?
> Is there a good "idiom" or standardized way of turning compilation of the called functions on and off? What about debugging (I use the debug package)?
> I am perfectly happy with pointers to articles, books and code.

More information about the R-help mailing list