[R] using self-written functions

Gavin Simpson gavin.simpson at ucl.ac.uk
Thu Jun 28 13:34:41 CEST 2007


On Thu, 2007-06-28 at 17:29 +0800, R. Leenders wrote:
> Hi, I am pretty new to R, so I apologize for the obvious question.
> I
> have worked with R for a few months now and in the process have written
> several functions that I frequently use in various data analysis
> projects. I tend to give each project a directory of its own and set
> the working directory to that.
> Since there are several tasks that
> need to be accomplished in many of my projects, I frequently want to
> use functions I have written previously. My question is, how do I get
> access to them? The way I do it now is copy the relevant code to the
> script file of the project I am working on at the time and then run it
> so as to make the functions available. But that seems to be
> unnecessarily cumbersome. I used to work a lot with gauss, which had
> the opportunity of putting one's own functions is one directory and
> gauss would then have that directory in its search path always. How can
> I access my own functions in R without having to copy-paste them
> everytime and run them manually so I can call them later? Do I need to
> learn how to write a package and attach the package to make the
> functions available at all times? Is there another way?

Building a package is one way, and not that difficult once you've read
the Writing R Extensions manual.

An alternative is to have a directory where you keep R function scripts.
Put your functions in here in text files with say a .R extension. Then
in R you can source one or more of these R scripts as required, using
the source() function.

Say you have a directory, myScripts at the base of file system
(/home/user say on Linux or C:\ on Windows). in this directory there is
a file called my_r_function.R. To use this script/function in an R
session, you would issue:

## replace /home/user/ with what ever is the correct path for your
## system
source("/home/user/myScripts/my_r_function.R")

Which would make available to your current session any functions defined
in my_r_function.R.

Read ?source for more information.

HTH

G

> 
> thanks, James
> 
> 
> 
> 
>        
> ____________________________________________________________________________________
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Gavin Simpson                 [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list