Я пытаюсь написать скрипт, который автоматически объединяет все файлы из указанных c папок автоматически в один файл .txt, но у меня возникают проблемы, потому что я пытаюсь объединить их в один большой фрейм данных перед записью в текстовый файл, и я получаю ошибки, потому что имена столбцов не совпадают, поэтому я использовал smartbind, но не получаю ошибку для «двойных имен строк».
Вот мой код:
library(gtools)
dir<-"/Users/max/Desktop/NISAT_All/Regions"
subdir_list<-list.dirs(dir, recursive=F)
subdir_list<-list.dirs(subdir_list, recursive=F)
as.matrix(subdir_list)
subdirs_General <- subdir_list[ grepl("General", subdir_list) ]
as.matrix(subdirs_General)
subdir_list <- subdir_list[ !grepl("General", subdir_list) ]
subdir_list<-list.dirs(subdir_list, recursive=F)
as.matrix(subdir_list)
for (subdir in subdir_list){
setwd(subdir)
subdir <-list.files(subdir, recursive=T)
files <- subdir[ grepl("Armed Groups and Small Guns", subdir) ]
files <- c(files, subdir[ grepl("Arms Embargoes", subdir) ])
files <- c(files, subdir[ grepl("Black Market", subdir) ])
files <- c(files, subdir[ grepl("Brokering", subdir) ])
files <- c(files, subdir[ grepl("Landmines", subdir) ])
files <- c(files, subdir[ grepl("MANPADS", subdir) ])
files <- c(files, subdir[ grepl("Production", subdir) ])
files <- c(files, subdir[ grepl("Stockpile Security and Destruction", subdir) ])
files <- c(files, subdir[ grepl("UN Processes", subdir) ])
files <- c(files, subdir[ grepl("United Nations", subdir) ])
files <- c(files, subdir[ grepl("Weapons Collection and Amnesties", subdir) ])
dataframe <- data.frame()
for (file in files){
df_temp <- read.delim(file)
dataframe <- smartbind(dataframe, df_temp, sep="\n")
}
#then write your final file
write.table(dataframe,"MergedFiles.txt",sep="\n", row.names = F, eol = "\r")
rm(dataframe)
}
на картинке видно, как обычно выглядят файлы, я просто хочу объединить их в один
Может кто-нибудь помочь?