我目前正在使用以下功能读入并组合R中的几个(7)csv。
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)
}
然而原始文件很大(.5百万行和~3500列)。列数从3400到3700不等,当我合并这些文件时,R会出现内存错误:cannot allocate vector of size 85Gb
我想如果我从所有csvs中获取交集列,并且只读取每个csv中的那些列,它可能会解决问题。
但是我不知道在阅读文件时我怎么能这样做。
有人可以帮帮我吗?