FAQ

[R] Help needed! Error in setwd(newdir) : cannot change working directory

Ying chen
Feb 26, 2012 at 4:25 am
Hi Guys,

I am new to R and just trying to write a small script to automate a couple commands. But I run into the setwd(): cannot change working directory.
I googled a little bit and tried all fixes/suggestions with no success.
Basically I have a script 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. Here is my mytest02.R script:
# 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);>># load the necessary libraries>>library("A"); #>>library("B");>>library("C");>># 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);
Then I run the script by
sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
I got the error message:
sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.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
What did I do wrong?
One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
Thanks a lot for the help!
Ying
reply

Search Discussions

7 responses

  • R. Michael Weylandt at Feb 26, 2012 at 5:48 pm
    This is a mess -- please resend in plain text.

    Also, there are not, to my knowledge, packages (not libraries) called
    "A", "B", or "C" so your script doesn't even begin to look
    reproducible were it legible.

    Do you have read/write access to the directories in question?

    Michael
    On Sat, Feb 25, 2012 at 11:25 PM, ying chen wrote:

    Hi Guys,

    I am new to R and just trying to write a small script to automate a couple commands. But I run into the setwd(): cannot change working directory.
    I googled a little bit and tried all fixes/suggestions with no success.
    Basically I have a script 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. Here is my mytest02.R script:
    # 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);>># load the necessary libraries>>library("A"); ?#>>library("B");>>library("C");>># 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);
    Then I run the script by
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
    I got the error message:
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.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
    What did I do wrong?
    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying

    ? ? ? ?[[alternative HTML version deleted]]


    ______________________________________________
    R-help at 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.
  • Ivette at Feb 26, 2012 at 7:27 pm
    try setwd(choose.dir())

    --
    View this message in context: http://r.789695.n4.nabble.com/Help-needed-Error-in-setwd-newdir-cannot-change-working-directory-tp4421698p4422749.html
    Sent from the R help mailing list archive at Nabble.com.
  • Ying chen at Feb 26, 2012 at 9:00 pm
    Hi,
    I am sorry about the format it showed up. I do not know what happened as it looks fine when I read it using chrome on ubuntu 11.10 64bit. 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 librarieslibrary("A"); # A fake package namelibrary("B"); # B fake package namelibrary("C"); # C fake package name........ #data processing........ #data processing........ #data processing# unload the librariesdetach("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 argsargs <- commandArgs(TRUE);# store the current directoryinitial.dir <- getwd();newdir <- paste(initial.dir,args,sep="/");outfilename <- paste(args,"out",sep=".");# change to the new directorysetwd(newdir);# load the necessary librarieslibrary("A"); # A fake package namelibrary("B"); # B fake package namelibrary("C"); # C fake package name# set the output filesink(outfilename);........ #data processing........ #data processing........ #data processing# close the output filesink();# unload the librariesdetach("package:A"); #detach("package:B");detach("package:C");# change back to the original directorysetwd(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.RAttempting to load the environment �package:R.utils�Loading required package: R.methodsS3R.methodsS3 v1.2.1 (2010-09-18) successfully loaded. See ?R.methodsS3 for help.Loading required package: utilsR.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 directoryExecution halted
    What did I do wrong? I think I have the right to read and write to the directories.
    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying
    sean@I7-3930K:~/Rtest$ ls -ltotal 56drwx------ 3 sean sean 4096 2012-02-25 20:39 Data01drwx------ 2 sean sean 4096 2012-02-25 20:28 Data02drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03drwx------ 2 sean sean 4096 2012-02-25 21:18 Data04drwx------ 2 sean sean 4096 2012-02-25 20:27 Data05-rw-r--r-- 1 sean sean 437 2012-02-26 15:28 scriptA.R.......
    From: mic...@...com
    Date: Sun, 26 Feb 2012 12:48:57 -0500
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change working directory
    To: yin...@...com
    CC: r-help@r-project.org

    This is a mess -- please resend in plain text.

    Also, there are not, to my knowledge, packages (not libraries) called
    "A", "B", or "C" so your script doesn't even begin to look
    reproducible were it legible.

    Do you have read/write access to the directories in question?

    Michael
    On Sat, Feb 25, 2012 at 11:25 PM, ying chen wrote:

    Hi Guys,

    I am new to R and just trying to write a small script to automate a couple commands. But I run into the setwd(): cannot change working directory.
    I googled a little bit and tried all fixes/suggestions with no success.
    Basically I have a script 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. Here is my mytest02.R script:
    # 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);>># load the necessary libraries>>library("A"); #>>library("B");>>library("C");>># 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);
    Then I run the script by
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
    I got the error message:
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.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
    What did I do wrong?
    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying

    [[alternative HTML version deleted]]


    ______________________________________________
    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.
  • Ying chen at Feb 26, 2012 at 9:12 pm
    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);
    # load the necessary libraries
    library("A"); # A fake package name
    library("B"); # B fake package name
    library("C"); # C fake package name
    # 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

    What did I do wrong? I think I have the right to read and write to the directories.

    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?

    Thanks a lot for the help!

    Ying

    sean@I7-3930K:~/Rtest$ ls -l
    total 56
    drwx------ 3 sean sean 4096 2012-02-25 20:39 Data01
    drwx------ 2 sean sean 4096 2012-02-25 20:28 Data02
    drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03
    drwx------ 2 sean sean 4096 2012-02-25 21:18 Data04
    drwx------ 2 sean sean 4096 2012-02-25 20:27 Data05
    -rw-r--r-- 1 sean sean 437 2012-02-26 15:28 scriptA.R
    .......

    From: yin...@...com
    To: mic...@...com
    Date: Sun, 26 Feb 2012 16:00:20 -0500
    CC: r-help@r-project.org
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change working directory






    Hi,
    I am sorry about the format it showed up. I do not know what happened as it looks fine when I read it using chrome on ubuntu 11.10 64bit. 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 librarieslibrary("A"); # A fake package namelibrary("B"); # B fake package namelibrary("C"); # C fake package name........ #data processing........ #data processing........ #data processing# unload the librariesdetach("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 argsargs <- commandArgs(TRUE);# store the current directoryinitial.dir <- getwd();newdir <- paste(initial.dir,args,sep="/");outfilename <- paste(args,"out",sep=".");# change to the new directorysetwd(newdir);# load the necessary librarieslibrary("A"); # A fake package namelibrary("B"); # B fake package namelibrary("C"); # C fake package name# set the output filesink(outfilename);........ #data processing........ #data processing........ #data processing# close the output filesink();# unload the librariesdetach("package:A"); #detach("package:B");detach("package:C");# change back to the original directorysetwd(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.RAttempting to load the environment �package:R.utils�Loading required package: R.methodsS3R.methodsS3 v1.2.1 (2010-09-18) successfully loaded. See ?R.methodsS3 for help.Loading required package: utilsR.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 directoryExecution halted
    What did I do wrong? I think I have the right to read and write to the directories.
    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying
    sean@I7-3930K:~/Rtest$ ls -ltotal 56drwx------ 3 sean sean 4096 2012-02-25 20:39 Data01drwx------ 2 sean sean 4096 2012-02-25 20:28 Data02drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03drwx------ 2 sean sean 4096 2012-02-25 21:18 Data04drwx------ 2 sean sean 4096 2012-02-25 20:27 Data05-rw-r--r-- 1 sean sean 437 2012-02-26 15:28 scriptA.R.......
    From: mic...@...com
    Date: Sun, 26 Feb 2012 12:48:57 -0500
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change working directory
    To: yin...@...com
    CC: r-help@r-project.org

    This is a mess -- please resend in plain text.

    Also, there are not, to my knowledge, packages (not libraries) called
    "A", "B", or "C" so your script doesn't even begin to look
    reproducible were it legible.

    Do you have read/write access to the directories in question?

    Michael
    On Sat, Feb 25, 2012 at 11:25 PM, ying chen wrote:

    Hi Guys,

    I am new to R and just trying to write a small script to automate a couple commands. But I run into the setwd(): cannot change working directory.
    I googled a little bit and tried all fixes/suggestions with no success.
    Basically I have a script 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. Here is my mytest02.R script:
    # 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);>># load the necessary libraries>>library("A"); #>>library("B");>>library("C");>># 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);
    Then I run the script by
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
    I got the error message:
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.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
    What did I do wrong?
    One more question, is there anyway to modify this script to make it work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying

    [[alternative HTML version deleted]]


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

    [[alternative HTML version deleted]]


    ______________________________________________
    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.
  • Jim holtman at Feb 26, 2012 at 9:31 pm
    At this point you need to learn how to do some basic debugging of your
    script. Open a GUI window that you can copy/paste parts of your script and
    execute it piece-meal. Get to the point where you want to change your
    working directory and do a 'getwd()' to see where you are. It is obvious
    from your error message that whatever directory you are giving as an
    argument is not valid at the point you are executing the 'setwd' function.
    At least put a 'print(getwd())' right before your setwd function call.

    This is debugging 101 that you will have to learn so that you can develop
    more complex scripts.
    On Sun, Feb 26, 2012 at 4:12 PM, 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);
    # load the necessary libraries
    library("A"); # A fake package name
    library("B"); # B fake package name
    library("C"); # C fake package name
    # 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

    What did I do wrong? I think I have the right to read and write to the
    directories.

    One more question, is there anyway to modify this script to make it work
    on all data directories under /home/sean/Rtest by itself?

    Thanks a lot for the help!

    Ying

    sean@I7-3930K:~/Rtest$ ls -l
    total 56
    drwx------ 3 sean sean 4096 2012-02-25 20:39 Data01
    drwx------ 2 sean sean 4096 2012-02-25 20:28 Data02
    drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03
    drwx------ 2 sean sean 4096 2012-02-25 21:18 Data04
    drwx------ 2 sean sean 4096 2012-02-25 20:27 Data05
    -rw-r--r-- 1 sean sean 437 2012-02-26 15:28 scriptA.R
    .......

    From: yin...@...com
    To: mic...@...com
    Date: Sun, 26 Feb 2012 16:00:20 -0500
    CC: r-help@r-project.org
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change
    working directory






    Hi,
    I am sorry about the format it showed up. I do not know what happened as
    it looks fine when I read it using chrome on ubuntu 11.10 64bit. 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 librarieslibrary("A"); # A fake package
    namelibrary("B"); # B fake package namelibrary("C"); # C fake package
    name........ #data processing........ #data processing........
    #data processing# unload the librariesdetach("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 argsargs <- commandArgs(TRUE);# store the current
    directoryinitial.dir <- getwd();newdir <-
    paste(initial.dir,args,sep="/");outfilename <- paste(args,"out",sep=".");#
    change to the new directorysetwd(newdir);# load the necessary
    librarieslibrary("A"); # A fake package namelibrary("B"); # B fake
    package namelibrary("C"); # C fake package name# set the output
    filesink(outfilename);........ #data processing........ #data
    processing........ #data processing# close the output filesink();#
    unload the librariesdetach("package:A");
    #detach("package:B");detach("package:C");# change back to the original
    directorysetwd(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.RAttempting to
    load the environment �package:R.utils�Loading required package:
    R.methodsS3R.methodsS3 v1.2.1 (2010-09-18) successfully loaded. See
    ?R.methodsS3 for help.Loading required package: utilsR.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
    directoryExecution halted
    What did I do wrong? I think I have the right to read and write to the
    directories.
    One more question, is there anyway to modify this script to make it work
    on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying
    sean@I7-3930K:~/Rtest$ ls -ltotal 56drwx------ 3 sean sean 4096
    2012-02-25 20:39 Data01drwx------ 2 sean sean 4096 2012-02-25 20:28
    Data02drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03drwx------ 2 sean
    sean 4096 2012-02-25 21:18 Data04drwx------ 2 sean sean 4096 2012-02-25
    20:27 Data05-rw-r--r-- 1 sean sean 437 2012-02-26 15:28 scriptA.R.......
    From: mic...@...com
    Date: Sun, 26 Feb 2012 12:48:57 -0500
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change
    working directory
    To: yin...@...com
    CC: r-help@r-project.org

    This is a mess -- please resend in plain text.

    Also, there are not, to my knowledge, packages (not libraries) called
    "A", "B", or "C" so your script doesn't even begin to look
    reproducible were it legible.

    Do you have read/write access to the directories in question?

    Michael
    On Sat, Feb 25, 2012 at 11:25 PM, ying chen wrote:

    Hi Guys,

    I am new to R and just trying to write a small script to automate a
    couple commands. But I run into the setwd(): cannot change working
    directory.
    I googled a little bit and tried all fixes/suggestions with no success.
    Basically I have a script 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. Here is my mytest02.R
    script:
    # 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);>># load the necessary libraries>>library("A");
    #>>library("B");>>library("C");>># 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);
    Then I run the script by
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
    I got the error message:
    sean@I7-3930K:~/Rtest$ R --slave --args Data01 <
    mytest02.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
    What did I do wrong?
    One more question, is there anyway to modify this script to make it
    work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying

    [[alternative HTML version deleted]]


    ______________________________________________
    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<http://www.r-project.org/posting-guide.html>
    and provide commented, minimal, self-contained, reproducible code.

    [[alternative HTML version deleted]]


    ______________________________________________
    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<http://www.r-project.org/posting-guide.html>
    and provide commented, minimal, self-contained, reproducible code.
    [[alternative HTML version deleted]]


    ______________________________________________
    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<http://www.r-project.org/posting-guide.html>
    and provide commented, minimal, self-contained, reproducible code.

    --
    Jim Holtman
    Data Munger Guru

    What is the problem that you are trying to solve?
    Tell me what you want to do, not how you want to do it.
  • Petr Savicky at Feb 26, 2012 at 9:34 pm

    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 at I7-3930K:~/Rtest$ R --slave --args Data01 < scriptB.R

    I got the error message:

    sean at 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.
  • Jeff Newmiller at Feb 26, 2012 at 9:23 pm
    Stop it with the "fake" code if you want help. In keeping with the posting guide, make one reproducible example that exhibits a real problem. For what it is worth, I don't have difficulty with setwd().
    ---------------------------------------------------------------------------
    Jeff Newmiller The ..... ..... Go Live...
    DCN:<jdn...@...us> Basics: ##.#. ##.#. Live Go...
    Live: OO#.. Dead: OO#.. Playing
    Research Engineer (Solar/Batteries O.O#. #.O#. with
    /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
    ---------------------------------------------------------------------------
    Sent from my phone. Please excuse my brevity.

    ying chen wrote:




    Hi,
    I am sorry about the format it showed up. I do not know what happened
    as it looks fine when I read it using chrome on ubuntu 11.10 64bit. 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 librarieslibrary("A"); # A fake package
    namelibrary("B"); # B fake package namelibrary("C"); # C fake package
    name........ #data processing........ #data processing........
    #data processing# unload the librariesdetach("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 argsargs <- commandArgs(TRUE);# store the current
    directoryinitial.dir <- getwd();newdir <-
    paste(initial.dir,args,sep="/");outfilename <-
    paste(args,"out",sep=".");# change to the new directorysetwd(newdir);#
    load the necessary librarieslibrary("A"); # A fake package
    namelibrary("B"); # B fake package namelibrary("C"); # C fake package
    name# set the output filesink(outfilename);........ #data
    processing........ #data processing........ #data processing#
    close the output filesink();# unload the librariesdetach("package:A");
    #detach("package:B");detach("package:C");# change back to the original
    directorysetwd(initial.dir);
    ##################################################################
    I run the scriptB.R by
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 < scriptB.R
    I got the error message:
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 < scriptB.RAttempting to
    load the environment ?package:R.utils?Loading required package:
    R.methodsS3R.methodsS3 v1.2.1 (2010-09-18) successfully loaded. See
    ?R.methodsS3 for help.Loading required package: utilsR.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 directoryExecution halted
    What did I do wrong? I think I have the right to read and write to the
    directories.
    One more question, is there anyway to modify this script to make it
    work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying
    sean at I7-3930K:~/Rtest$ ls -ltotal 56drwx------ 3 sean sean 4096
    2012-02-25 20:39 Data01drwx------ 2 sean sean 4096 2012-02-25 20:28
    Data02drwx------ 2 sean sean 4096 2012-02-26 07:41 Data03drwx------ 2
    sean sean 4096 2012-02-25 21:18 Data04drwx------ 2 sean sean 4096
    2012-02-25 20:27 Data05-rw-r--r-- 1 sean sean 437 2012-02-26 15:28
    scriptA.R.......
    From: michael.weylandt at gmail.com
    Date: Sun, 26 Feb 2012 12:48:57 -0500
    Subject: Re: [R] Help needed! Error in setwd(newdir) : cannot change
    working directory
    To: ying_chen at live.com
    CC: r-help at r-project.org

    This is a mess -- please resend in plain text.

    Also, there are not, to my knowledge, packages (not libraries) called
    "A", "B", or "C" so your script doesn't even begin to look
    reproducible were it legible.

    Do you have read/write access to the directories in question?

    Michael
    On Sat, Feb 25, 2012 at 11:25 PM, ying chen wrote:

    Hi Guys,

    I am new to R and just trying to write a small script to automate a
    couple commands. But I run into the setwd(): cannot change working
    directory.
    I googled a little bit and tried all fixes/suggestions with no
    success.
    Basically I have a script 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. Here is my
    mytest02.R script:
    # 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);>># load the necessary
    libraries>>library("A"); #>>library("B");>>library("C");>># 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);
    Then I run the script by
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 < mytest02.R
    I got the error message:
    sean at I7-3930K:~/Rtest$ R --slave --args Data01 <
    mytest02.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
    What did I do wrong?
    One more question, is there anyway to modify this script to make it
    work on all data directories under /home/sean/Rtest by itself?
    Thanks a lot for the help!
    Ying

    [[alternative HTML version deleted]]


    ______________________________________________
    R-help at 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.

    [[alternative HTML version deleted]]

    ______________________________________________
    R-help at 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.

Related Discussions

Discussion Navigation
viewthread | post