[R] writing R extension

ahmad ajakh aajakh at yahoo.com
Fri Dec 22 23:45:33 CET 2006


Thanks Mike.
AA.

----- Original Message ----
From: Mike Prager <mike.prager at noaa.gov>
To: r-help at stat.math.ethz.ch
Sent: Friday, December 22, 2006 12:45:40 PM
Subject: Re: [R] writing R extension

ahmad ajakh <aajakh at yahoo.com> wrote:

> Hi all,
> I am dealing with the same issue here and I was wondering whether it would be possible to just save
> the R compliled function objects in a directory and just attach the directory to the search path.
> (I am using R2.4.0+ESS+Xemacs in windows XP). 
> 
> Thanks.
> AA.

Yes.  That is what I do with my own functions.  It is MUCH
simpler than writing a package, though not as functional (no
help pages for example.)

Make sure the workspace has only the functions you need, then
save it.  In your .Rprofile, you can put a line like

attach("d:/R/MHP/MHPmisc/.RData")

to add the workspace to the search path.  

This has the advantage that the functions don't show up when you
type ls() -- but they do when you type ls(nn), where nn is the
position of the added workspace on the search path.

I use the following script, stored in file 00make.r in the same
directory as the functions, to speed this up:

#==============================
## Script 00make.r   MHP
## This clears the current workspace, sources all the scripts
## found in the working directory, and then saves the
## workspace for use by later R sessions

# Clear all existing objects in workspace:
rm(list=ls())

# Make a list of all R source files in this directory:
flist = list.files(path = ".", pattern = ".+\.r")

# Remove from the list all files containing the string "00":
# Such files should be used for temporary functions or
# scripts like this one.
flist2 = flist[-grep("00", flist)]

# Source the files:
for (i in 1:length(flist2)) {
   cat("Sourcing", flist2[i],"\n")
   source(flist2[i])
   }
# Remove temporary objects:
rm(i, flist, flist2)
# Save workspace:
save.image()
# Write message to user:
cat("\nNOTE: The workspace has been saved with all
functions.\n",
    "     When exiting R, please do NOT save again.\n")
ls() in
#===============================

-- 
Mike Prager, NOAA, Beaufort, NC
* Opinions expressed are personal and not represented otherwise.
* Any use of tradenames does not constitute a NOAA endorsement.

______________________________________________
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.



More information about the R-help mailing list