R ОС Windows choose.dir() Средство выбора файлов не открывается в рабочем каталоге

На справочной странице функции choose.dir приведен пример:

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

Который должен запустить окно выбора папки в рабочем каталоге. Однако у меня открывается окно выбора папки только в "Мой компьютер". По каким причинам эта функция может работать не так, как задумано?

1 ответ

Решение

Вы правы в том, что вы не должны использовать choose.dir(), так как это зависит от ОС. Я действительно могу воспроизвести проблему, о которой вы сообщаете, - я предполагаю, что она не позволит вам начать работу с каталогом, который принадлежит "корневому" пользователю (что бы это ни значило в Windows), потому что, похоже, он хорошо работает для других каталогов, не под "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"

Есть два независимых от ОС решения; Во-первых, как уже указывалось ранее, необходимо использовать следующие tcltk пакет:

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

Во-вторых, использовать rChoiceDialogs пакет (требуется rJava):

 library(rJava)
 library(rChoiceDialogs)
 getwd()
 # [1] "C:/Users/Root/Documents"
 jchoose.dir()  # opens the dialog window in "C:\\Users\\Root\\Documents"
Другие вопросы по тегам