那么,我的代码将两堆数据相互比较,例如,节食计划前和节食计划后。
因为使用代码的人,坦率地说,是代码恐惧症,我试图使它尽可能容易使用。
我希望他们能够使用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)