В настоящее время я использую приведенную ниже функцию для считывания и объединения нескольких (7) CSV в R.
csv_append <- function(file_path = filePath){
files <- grep(list.files(path = file_path,full.names = TRUE), pattern="final_data_dummied_", value=T)
###Load all files into a list of dataframes
df_list = lapply(files,fread,nThread = 4)
DT = rbindlist(df_list,fill = TRUE)
# Convert data.table to dataframe
df_seg = setDF(DT)
rm(list = c('DT','df_list'))
# Replace missing values with 0
df_seg[is.na(df_seg)] <- 0
return (df_seg)
}
Однако исходные файлы имеют большой размер (0,5 миллиона строк и ~ 3500 столбцов).Количество столбцов варьируется от 3400 до 3700, и когда я объединяю эти файлы, R выдает ошибку памяти: cannot allocate vector of size 85Gb
Я думаю, что если я возьму пересечение столбцов из всех CSV-файлов и прочту только эти столбцы из каждого CSV, это может решить проблему.,Но я не уверен, как я могу это сделать, читая файлы.
Может кто-нибудь помочь мне с этим?