Я пытаюсь сделать что-то, что, по моему мнению, должно быть достаточно прямым, но до сих пор мне не удалось это понять (неудивительно, что я нооб).Подсказка пользователя для нескольких входных файлов в R
Я хочу, чтобы иметь возможность запрашивать пользователя для ввода файла (ов) в R. Я успешно использовал file.choose()
, чтобы получить один файл, но я хотел бы иметь возможность выбрать более одного файла в время.
Я пытаюсь написать программу, которая всасывает ежедневные файлы данных с тем же заголовком и добавляет их в один большой месячный файл. Я могу сделать это в консоли, импортируя файлы по отдельности, а затем используя 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
choose.files это окно конкретные I верить. – ALiX
Спасибо, это именно то, что я искал! –
Я могу использовать 'tk_choose.files()' на mac после установки пакета tcltk –