Как взять только общие столбцы между несколькими CSV при добавлении данных - PullRequest
0 голосов
/ 07 июня 2018

В настоящее время я использую приведенную ниже функцию для считывания и объединения нескольких (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, это может решить проблему.,Но я не уверен, как я могу это сделать, читая файлы.

Может кто-нибудь помочь мне с этим?

...