我有問題,我想讀通過CSV文件的數據量巨大(大概約80萬行分成約200文件)[R data.table readcsv文件增加柱量
某些文件結構不好。在幾十萬行之後,出於某種原因,行以逗號(「,」)結尾,但在此逗號後面沒有其他信息。一個簡短的例子來說明這種行爲:
a,b,c
1,2,3
d,e,f,
4,5,6,
行有19列。我試圖手動告訴readcsv讀它爲20列,使用colClasses和col.names並填寫= TRUE
all.files <- list.files(getwd(), full.names=T, recursive=T)
lapply(all.files, fread,
select=c(5,6,9),
col.names=paste0("V",seq_len(20)),
#colClasses=c("V1"="character","V2"="character","V3"="integer"),
colClasses=c(<all 20 data types, 20th arbitrarily as integer>),
fill=T)
另一個解決方法我試過是不會使用的fread可言,做
data <- lapply(all.files, readLines)
data <- unlist(data)
data <- as.data.table(tstrsplit(data,","))
data <- data[, c("V5","V6","V9"), with=F]
然而,這種方法導致「錯誤:內存耗盡」,我相信可能通過實際只讀取所需的3列而不是全部來解決。
任何有關如何在此場景中使用fread的提示非常感謝。
關於R代碼的問題通常在這裏討論。這應該是關於[SO]的主題。如果您等待,我們會嘗試將其遷移到那裏。 – gung
對不起。那麼我會等待遷移。 – Michel