[R] Accessing objects manipulated in a function

Fisher Dennis fisher at plessthan.com
Sat May 14 17:46:39 CEST 2016


R 3.2.4
OS X and Windows

Colleagues,

I distribute some code to co-workers and I am trying to simplify their task.  The issue is as follows:

1.  The code automates an extensive set of processes.  Many of the steps are standardized.  However, some of the steps may require that users write snippets of code, stored in R scripts.

2.  If users write their own code, it might appear in files named UserCode1.R, UserCode2.R, etc..  The master code checks for the existence of this code, then executes
	source(“/path/to/UserCode1.R”)
This can occur at many different points in the master code (each time sourcing a different file).  
In addition to the command above, there are a variety of other commands testing whether the file exists and whether it contains certain commands that I don’t allow the user to execute.
In order to simplify the code, these commands are embedded in a function (which I will call MODIFYCODE for the moment).

3.  Assume that an object within the master code is named TEMP.  The user might add a column to TEMP.  Since this occurs within a function, there are two ways to get this modification back to the original environment:
	a.  within the function:	TEMP	<<- TEMP
	b.  use the return value from the function:
		TEMP	<-   MODIFYCODE()

4.  There are disadvantages to each of these:
	a.  The user needs to know that the “<<-“ command must be invoked.  If they don’t do so, the changes within the function are not available in the master environment
	b.  I don’t know what code will be written by the user, i.e., they might manipulate TEMP or they might create a new object or something else.  So, I don’t know a priori what to return.

So, my question is: is there some way to manipulate environments such that the changes within the function are AUTOMATICALLY transferred to the environment outside the function?

Dennis

Dennis Fisher MD
P < (The "P Less Than" Company)
Phone / Fax: 1-866-PLessThan (1-866-753-7784)
www.PLessThan.com <http://www.plessthan.com/>





	[[alternative HTML version deleted]]



More information about the R-help mailing list