用户界面- GUI在脚本中更改多个工作目录(R)



那么,我的代码将两堆数据相互比较,例如,节食计划前和节食计划后。

因为使用代码的人,坦率地说,是代码恐惧症,我试图使它尽可能容易使用。

我希望他们能够使用GUI来选择工作目录的路径,例如

    a. Select Before Working Directory:  [             ]↓ 
    b. Select After  Working Directory:  [             ]↓ 
    c. Select Output Location         :  [             ]↓ 

来自a的路径需要作为字符串存储在脚本中,因为我以以下方式使用它:

  a = "path1"
  b = "path2"
  c = "path3"
  setwd(a)
  <<code>>
  <<code>>
  setwd(b)
  <<code>>
  <<code>>
  setwd(c)
  write.csv( df, "file_name")

Rcmdr似乎是一种选择,但对于我的目的来说,它似乎太过分了。


更新:我也遇到了svDialogs包中的dlgDir,非常方便。

您可以使用基础file.choose()dirname():

cat("a. Select Before Working Directory:") 
a <- file.choose()
a <- dirname(a)
cat("b. Select After  Working Directory:")
b <- file.choose()
b <- dirname(b)
cat("c. Select Output Location:")
c <-  file.choose()
c <- dirname(c)

或者tcltk:

require(tcltk)
pathA <- function() {
  a <<- tk_choose.dir()
}
pathB <- function() {
  b <<- tk_choose.dir()
}
pathC <- function() {
  c <<- tk_choose.dir()
}
#create UI with three buttons
tt <- tktoplevel()
buttonA <- tkbutton(tt, text = "a. Select Before Working Directory:", command = pathA)
buttonB <- tkbutton(tt, text = "b. Select After  Working Directory:", command = pathB)
buttonC <- tkbutton(tt, text = "c. Select Output Location:", command = pathC)

tkpack(buttonA)
tkpack(buttonB)
tkpack(buttonC)

最新更新