4

我想使用相同的脚本来处理存储在不同位置的许多文本文件中的数据,然后将输出保存到另一个唯一位置,而不必每次都修改我的脚本。我有输入数据使用:

data <- read.table(file.choose(),header=T)

并想用类似的界面来保存最终表格以选择位置并输入文件的名称。

我试过了:

write.csv(data.table,file.choose())

但这仅在我在运行脚本之前在我想要的位置创建一个具有我想要的名称的空 .csv 文件时才有效。

还有另一种(更好的)方法吗?

4

4 回答 4

3

有几种可能:

library(gWidgets)
fileName <- gfile(type = "save") 

library(tcltk)
fileName <- tclvalue(tkgetSaveFile()) 

library(svDialogs)
fileName <- dlgSave()$res 

dlgSave在需要创建新文件时要求确认,使用附加参数(一些基本示例tkgetSaveFile似乎有点复杂,并提供了多种选项。gfile

于 2012-10-10T17:32:00.267 回答
1

万一它被忽视了,file.choose() 还有一个内置参数,允许用户提供新的文件名:

fileName <- file.choose(new=TRUE)
于 2014-03-14T21:36:21.473 回答
1

如果你对你的输入文件做同样的事情,我会使用类似的东西:

# input files from working directory
all.files <- list.files()

i <- 1
while (i <= length(all.files)){

data <- read.table(all.files[i],header=T)

# your script here

# output files
out.file <- paste(gsub(".csv","", all.files[i]),"_FINAL.csv",sep="")

write.csv(data,file=out.file)

i <- i+1
}
于 2014-03-14T23:12:21.223 回答
0

file.choose(new=TRUE) 对我有用。

Linux(流行!_OS 20.04),RStudio 1.3.1073

于 2020-10-16T04:49:20.650 回答