问题 r - file.choose()自定义对话窗口


是否有一种方法可以弹出对话窗口 file.choose() 运行以显示自定义标题,类似于 X <- menu(files, graphics=TRUE, title="Choose file X")

现在我的代码需要加载几个文件。

X <- read.csv(file.choose())
Y <- read.csv(file.choose())
Z <- read.csv(file.choose())

目前我只是使用我的(人类)内存来知道为第一个窗口,第二个窗口和第三个窗口选择哪些文件,但我希望窗口显示哪个对象 X  Y 要么 Z 将导入当前窗口的文件。我可以将窗口移到一边看看控制台的代码行,但这似乎非常不优雅。

我试过了 X <- read.csv(file.choose(new=c("Choose X"))) 例如,但似乎没有做任何事情。


1058
2018-04-26 00:59


起源



答案:


替代:

library(tcltk)
X <- read.csv(tk_choose.files(caption = "Choose X"))

看到该功能也可用于在一次通话中选择多个文件。为此,在选择多个文件时按住CTRL:

XYZ.list <- lapply(tk_choose.files(caption = "Choose X, Y, and Z"), read.csv)

但是不会保留选择顺序,因此如果对您更有效,您可能希望保留三个单独的调用。


7
2018-04-26 01:15





您可以使用 choose.files,它允许自定义标题和默认文件名(default),文件类型过滤(filters)和多文件选择(multi):

choose.files(default = "", caption = "Select files",
             multi = TRUE, filters = Filters,
             index = nrow(Filters))

检查帮助?choose.files;)


4
2018-04-26 08:35



特定于Windows的...... - Ben Bolker


答案:


替代:

library(tcltk)
X <- read.csv(tk_choose.files(caption = "Choose X"))

看到该功能也可用于在一次通话中选择多个文件。为此,在选择多个文件时按住CTRL:

XYZ.list <- lapply(tk_choose.files(caption = "Choose X, Y, and Z"), read.csv)

但是不会保留选择顺序,因此如果对您更有效,您可能希望保留三个单独的调用。


7
2018-04-26 01:15





您可以使用 choose.files,它允许自定义标题和默认文件名(default),文件类型过滤(filters)和多文件选择(multi):

choose.files(default = "", caption = "Select files",
             multi = TRUE, filters = Filters,
             index = nrow(Filters))

检查帮助?choose.files;)


4
2018-04-26 08:35



特定于Windows的...... - Ben Bolker