我想使用相同的脚本来处理存储在不同位置的许多文本文件中的数据,然后将输出保存到另一个唯一的位置,而不必每次都修改我的脚本。我使用输入数据:
data <- read.table(file.choose(),header=T)
并希望使用类似的界面保存最终表以选择位置并输入文件的名称。
我试过了:
write.csv(data.table,file.choose())
但是这只有在我在运行脚本之前在我想要的位置创建一个带有我想要的名称的空.csv文件时才有效。
还有其他(更好)的方法吗?
答案 0 :(得分:3)
有几种可能性:
library(gWidgets)
fileName <- gfile(type = "save")
library(tcltk)
fileName <- tclvalue(tkgetSaveFile())
library(svDialogs)
fileName <- dlgSave()$res
dlgSave
要求在需要创建新文件时进行确认,tkgetSaveFile
使用其他参数(some basic examples)和gfile
似乎有点复杂提供多种选择。
答案 1 :(得分:1)
如果它被忽视,file.choose()也有一个内置参数,允许用户提供新的文件名:
fileName <- file.choose(new=TRUE)
答案 2 :(得分: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
}
答案 3 :(得分:0)
file.choose(new = TRUE)对我有用。
Linux(Pop!_OS 20.04),RStudio 1.3.1073