Я перебираю несколько файлов, где каждый файл создает таблицу. Я хотел бы сохранить каждую таблицу в файл, чтобы у меня были все таблицы вместе. Идея состоит в том, что после запуска каждого файла окончательный вывод будет добавляться к предыдущему конечному выводу в таблице. Мой текущий код перебирает каждый файл, но берет данные только из последнего файла в папке и многократно добавляет к одному и тому же выводу. Вот мой код:
filenames <- Sys.glob("*.xlsx")
print(filenames)
final.df<-data.table()
for(i in 1:length(filenames)) {
#... final table named "Stats"
Stats$file <- i #To view which file is listed
df <- data.table(Stats)
final.df <- rbind(final.df, df)
drop(df)
}
Когда я запускаю код, имена файлов печатаются 26 раз в таком формате:
[1] "file1.xlsx" "file2.xlsx"
[1] "file1.xlsx" "file2.xlsx"
[1] "file1.xlsx" "file2.xlsx"
...
Мой текущий вывод печатается в этом формате:
X Y Z File
1 10 2 file2
2 6 2 file2
1 9 2 file2
1 10 2 file2
2 6 2 file2
1 9 2 file2
Мой желаемый результат будет выглядеть следующим образом:
X Y Z File
0 4 1 file1
1 7 1 file1
0 1 1 file1
1 10 2 file2
2 6 2 file2
1 9 2 file2
РЕШЕНИЕ
files <- list.files(pattern = "\\.xlsx$")
print(files)
final.df<-list()
for(title in c(paste(files, sep="."))) {
#... (Some data named Stats)
Stats<-data.table(Stats)
final.df[[title]] <- Stats
print(final.df)
}
Final <- rbindlist(final.df)