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

biotechris picture biotechris · Nov 4, 2015 · Viewed 7.5k times · Source

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?

Answer

desertnaut picture desertnaut · Nov 4, 2015

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"