私は十分に簡単なはずだと思うことをしようとしていますが、これまでのところそれを理解することができませんでした(当然のことながら私は初心者です)...
Rで入力ファイルの入力をユーザーに求めることができるようにしたいと思います。以前はfile.choose()
1つのファイルを取得できましたが、一度に複数のファイルを選択するオプションが必要です。
私は、同じヘッダーを使用して日次データファイルを取り込み、それらを1つの大きな月次ファイルに追加するプログラムを作成しようとしています。ファイルを個別にインポートしてからを使用することでコンソールでそれを行うことができますがrbind(file1, file2,...)
、プロセスを自動化するためのスクリプトが必要です。追加するファイルの数は、実行間で必ずしも一定ではありません。
ありがとう
更新:ここで私が思いついたコードは私のために機能します、多分それは他の誰かにも役立つでしょう
library (tcltk)
File.names <- tk_choose.files() #Prompts user for files to be combined
Num.Files <-NROW(File.names) # Gets number of files selected by user
# Create one large file by combining all files
Combined.file <- read.delim(File.names [1], header=TRUE, skip=2) #read in first file of list selected by user
for(i in 2:Num.Files){
temp <- read.delim(File.names [i], header=TRUE, skip=2) #temporary file reads in next file
Combined.file <-rbind(Combined.file, temp) #appends Combined file with the last file read in
i<-i+1
}
output.dir <- dirname(File.names [1]) #Finds directory of the files that were selected
setwd(output.dir) #Changes directory so output file is in same directory as input files
output <-readline(prompt = "Output Filename: ") #Prompts user for output file name
outfile.name <- paste(output, ".txt", sep="", collapse=NULL)
write.table(Combined.file, file= outfile.name, sep= "\t", col.names = TRUE, row.names=FALSE)` #write tab delimited text file in same dir that original files are in