Search code examples
rfilechooserworking-directory

R Windows OS choose.dir() File chooser won't open at working directory


The choose.dir function reference page there is an example:

choose.dir(getwd(), "Choose a suitable folder")

Which should start the folder choice window at the working directory. However I am only having the folder choice window open at 'My Computer'. What reasons could there be for this function not working as intended?


Solution

  • You are right in that you should not use choose.dir(), as it is OS-specific. I can indeed reproduce the issue you report - my guess is that it won't let you start in a directory that belongs to the "Root" user (whatever that may mean in Windows), because it seems to work well for other directories, not under 'Root':

     getwd()
     # [1] "C:/Users/Root/Documents"
     choose.dir(getwd(), "Choose a suitable folder") # leads to 'Computer'
    
     setwd("C:/datathon")
     choose.dir(getwd(), "Choose a suitable folder") # select subfolder 'scripts', works OK
     # [1] "C:\\datathon\\scripts"
    

    There are two OS-independent solutions; the first, as it has been pointed out before, is to use the following functionality from the tcltk package:

     library(tcltk)
     setwd('~')
     getwd()
     # [1] "C:/Users/Root/Documents"
     dir <- tclvalue(tkchooseDirectory())  # opens a dialog window in 'My Documents'
    

    The second is to use the rChoiceDialogs package (requires rJava):

     library(rJava)
     library(rChoiceDialogs)
     getwd()
     # [1] "C:/Users/Root/Documents"
     jchoose.dir()  # opens the dialog window in "C:\\Users\\Root\\Documents"