[R] Some unrelated questions.
jim at bitwrit.com.au
Mon May 6 23:48:37 CEST 2013
On 05/07/2013 02:14 AM, Keith S Weintraub wrote:
> 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