Jessica Streicher
2012-Jul-10 13:13 UTC
[R] define stuff to be only usable in the same file
Hello R-Help! I've looked around and have not found: A simple(short) way to hide functions and variables from the global environment. What i want is for a few of them to only be accessable from the scriptfile they're in. I probably could do fun things with environments , but that seems quite a hassle. As example: I have a file that gets me stuff from the database and creates an R object from the results, plus some functions on that object. Now i want the objectrelated stuff to be global, while the functions and variables i use for accessing the database shall be hidden.
On 12-07-10 9:13 AM, Jessica Streicher wrote:> Hello R-Help! > > I've looked around and have not found: > > A simple(short) way to hide functions and variables from the global environment. What i want is for a few of them to only be accessable from the scriptfile they're in. I probably could do fun things with environments , but that seems quite a hassle.The simplest and best way to do this is to write a package. You can also use local() around the code in a script, but it gets messy when you want to export more than one thing. Duncan Murdoch> As example: I have a file that gets me stuff from the database and creates an R object from the results, plus some functions on that object. Now i want the objectrelated stuff to be global, while the functions and variables i use for accessing the database shall be hidden.
Barry Rowlingson
2012-Jul-11 13:08 UTC
[R] define stuff to be only usable in the same file
On Tue, Jul 10, 2012 at 4:02 PM, Jessica Streicher <j.streicher at micromata.de> wrote:> > Forget about that, i'm stupid and can't use the tools available... >Here's something I wrote specially for all you wonderful stupid people out there... https://gist.github.com/3025606 What it tries to do is to wrap all the messy business of loading functions from an R file into a separate place on your search path. You just do: tach("foo.R") and anything defined in foo.R will be usable but not visible when you do ls(). If you edit and save foo.R then just do retach() to rescan all the .R files you might have tached earlier. Stuff in your ls() environment can mask stuff attached via tach, so watch out for that. Barry [ technical note: all it does is to source the file into an environment, and attach that environment. The environment is S3-superclassed so that retach can do its business ]