Rainer M Krug writes: > Envoyé de mon iPhone > >> Le 8 mai 2014 à 04:26, Charles Berry a écrit : >> >> Eric Schulte gmail.com> writes: >> >>> >>> Rainer M Krug krugs.de> writes: >>> >>>> Hi >>>> >>>> Attached please find seven patches for review to implement the storing >>>> of org variables in their own environment and to make the org-issued R >>>> code look nicer in the R session. >>>> >>>> Thanks, >>>> >>>> Rainer >>> >>> Hi Rainer, >>> >>> Thanks for these patches. I don't have the R experience to review or >>> maintain them, but I'm happy to apply them. >>> >>> I missed some previous discussion in this thread. Are these patches >>> ready to be applied as is? >> >> >> IMO, the patches hard coded behaviors that would better be customizable >> and optional. > > I'll give feedback tomorrow and let you know about customization of > the name of the environment. The general behavior of storing the > variables in an environment should not be customizable as it is > > 1) safer then the behavior of storing each variable separately > 2) no changes for the user are introduced OK. Concerning customization options: There are a few points where customizations could be introduced: 1) transfer of variables from org to R, i.e. old behavior (variables in .GlobalEnv) or new behavior (in own environment (.org_variables_)) or own defined function 2) name of new environment 3) name of file into which to save the variables (org_variables.RData) Some comments to each: 1) As outlined above, I see neither changes in behavior for the user nor disadvantages of the new behavior. As only one object is created in R (.org_variables_) instead of one for each variable, the chances of name clashes are much smaller. As the name of the variable starts with a dot (.), ends with an underscore (_), it is very unlikely that there is a nameclash in existing scripts (but you are right, one does not know). So I don't think, that it is necessary to include an option for disabling the old behavior. Concerning defining an own function for data transfer, I am thinking of putting the variable transfer into an R function which can then be customized from R. My reasoning is that users using this feature are more likely to be fluent in R then in lisp, so more able to change these functions in R. In org, the whole R code would then simply replaced with one function call. These functions would reside in a new environment (or in the ESSR environment as offered by Vitalie). In addition, as it was not asked before to have this function customizable, I don't think there would be a large need for it. 2) I don't think name clashes are likely, so I don't see a real need to have the name of the org environment in R configurable. Especially when using these variables in R, one can always use .org_variables_::VARIABLENAME to access the original value. If the environment name is customizable, this will be different between customizations and not that easily reproducible between org-installations. It would be easy to configure it, but I think it is rather a disadvantage and would make the code (slightly) more complex. 3) The name into which the variables are saved could be configurable, but again, I do not think this is such an issue. The saved environment is anyway only of limited usage when the variables in org are not defined file wide but per source block / tree. I am actually thinking of removing this saving, although it is quite useful to make tangled code usable on a non-org system when org variables are used - comments? So please let me know if you see the need of customization and for which aspect. > > Cheers > > Rainer > >> >> Rainer and I had some back and forth about this -- see the thread. >> >> Best, >> >> Chuck >> >> >> -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982