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? thanks, James ____________________________________________________________________________________ [[alternative HTML version deleted]]
One "quick and dirty" way is to put all your functions inside a file, say /home/me/R/myfuncs.R, and add the following line at the beginning of your scripts: source('/home/me/R/myfuncs.R') This is dirty because if you need to change the location of this file, your scripts will cease to work. Alternatively, you can add this command to your Rprofile (see the Annex B of An introduction to R "Invoking R") Christophe On 6/28/07, R. Leenders <suffenaam@yahoo.com> 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? > > thanks, James > > > > > > > ____________________________________________________________________________________ > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. >-- Christophe Pallier (http://www.pallier.org) [[alternative HTML version deleted]]
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 %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%