[R] how to organize a lot of R source files
Jim Lemon
jim at bitwrit.com.au
Sat Jan 9 01:28:03 CET 2010
Hi Jeff,
Your request makes a lot of sense. I often modify files in the packages
I maintain, typically by loading the package, then working on a copy of
the function, continually "sourcing" the new code until it works
correctly, and then checking and building the package. Apart from the
official packages I maintain, I keep a few local packages with odd
functions that I don't think are worth uploading to an already loaded
CRAN. This shell script can be used to automate the building of a package.
#!/bin/sh
cp $1 $2/R
if R CMD check $2; then
R CMD build $2;
R CMD INSTALL $3;
else
echo "Problem with R check of $2"
fi
If I had modified the "clinsig.R" file in the clinsig package, I could
call this script like this:
Rpackage /home/jim/R/clinsig.R /home/jim/R/clinsig clinsig_1.0-1.tar.gz
and it would rebuild the package with the new function. Because I
usually keep the files I am modifying in /home/jim/R I could simplify
the command line a bit. This may seem like a lot of work, but when I
worked out a way to get a function to check the timestamp of its source
file and compare it against the timestamp of the latest package:
if(max(file.info(system("find /home/jim/R -name 'clinsig.R'
-type f",intern=TRUE))$mtime) >
max(file.info(system("find /home/jim/R -name 'clinsig_*'
-type f",intern=TRUE))$mtime))
source("/home/jim/R/clinsig.R")
a lot of hard coding of file locations ends up in your function file.
Jim
More information about the R-help
mailing list