所以,我有代码将两堆数据相互比较, 例如,在饮食计划之前和饮食计划之后。
因为使用代码的人坦率地说是代码恐惧,所以我试图让它尽可能地易于使用。
我希望他们能够使用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似乎是一个选项,但对我的目的而言似乎非常过分。
更新:
我也遇到了dlgDir
svDialogs
包的operations.count
- 非常方便。
答案 0 :(得分:2)
您可以使用基座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)