On Sun, Feb 26, 2012 at 04:12:03PM -0500, ying chen wrote: > > Hi, > > I am sorry about the format it showed up. I do not know what happened as now > it looks worse even on my own machine. I do not know what to do, I just add > "\n" to the end of each line and hope it will come out OK this time. The > packages A, B, C are not the real package names. Basically I have scriptA.R > that works from inside a directory with my data (/home/sean/Rtest/Data01). > Now I want to modify the script to make it run from the upper directory > (/home/sean/Rtest) because I have many data directories under /Rtest, such as > /home/sean/Rtest/Data01, /home/sean/Rtest/Data02, > /home/sean/Rtest/Data03,..... I want to modify my script so that it will run > from /Rtest, and with the data directory name as arg passed to my R script. > My point is that when I put the scriptA.R in data directory such as Data01, > it works. Here are my scriptB.R script: > > ######################scriptA.R######################################### > > # load the necessary libraries > library("A"); # A fake package name > library("B"); # B fake package name > library("C"); # C fake package name > ........ #data processing > ........ #data processing > ........ #data processing > # unload the libraries > detach("package:A"); > detach("package:B"); > detach("package:C"); > q(); > ####################################################################### > > But, when I tried to modify scriptA.R to scriptB.R to run it from the > directory just above Data directories, I got the error message. > > ###########################scriptB.R####################################### > > # retrieve args > args <- commandArgs(TRUE); > # store the current directory > initial.dir <- getwd(); > newdir <- paste(initial.dir,args,sep="/"); > outfilename <- paste(args,"out",sep="."); > # change to the new directory > setwd(newdir);
Print the variable "newdir" to see, whether it contains, what you expect. > # load the necessary libraries > library("A"); # A fake package name > library("B"); # B fake package name > library("C"); # C fake package name Loading libraries in this way does not depend on the working directory. > # set the output file > sink(outfilename); > ........ #data processing > ........ #data processing > ........ #data processing > # close the output file > sink(); > # unload the libraries > detach("package:A"); # > detach("package:B"); > detach("package:C"); > # change back to the original directory > setwd(initial.dir); > > ################################################################## > > I run the scriptB.R by > > sean@I7-3930K:~/Rtest$ R --slave --args Data01 < scriptB.R > > I got the error message: > > sean@I7-3930K:~/Rtest$ R --slave --args Data01 < scriptB.R > Attempting to load the environment ?package:R.utils? > Loading required package: R.methodsS3 > R.methodsS3 v1.2.1 (2010-09-18) successfully loaded. See ?R.methodsS3 for > help. > Loading required package: utils > R.oo v1.8.3 (2011-11-01) successfully loaded. See ?R.oo for help. > > Attaching package: ?R.oo? > > The following object(s) are masked from ?package:R.methodsS3?: > > throw.default > > The following object(s) are masked from ?package:methods?: > > getClass, getClasses, getMethods > > The following object(s) are masked from ?package:base?: > > attach, detach, environment, gc, load, save > > R.utils v1.9.11 (2012-01-17) successfully loaded. See ?R.utils for help. > > Attaching package: ?R.utils? > > The following object(s) are masked from ?package:utils?: > > timestamp > > The following object(s) are masked from ?package:base?: > > cat, commandArgs, getOption, inherits, isOpen, lapply, parse, > remove, warnings > > [1] "/home/sean/Rtest" > [1] "/home/sean/Rtest/NA" "/home/sean/Rtest/TRUE" > [3] "/home/sean/Rtest/Data01" > [1] "NA.out" "TRUE.out" "Data01.out" > Error in setwd(newdir) : cannot change working directory > Execution halted Try print(newdir) before setwd(newdir). Petr Savicky. ______________________________________________ R-help@r-project.org 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.