1
我有數百個.csv文件需要使用fread讀入並保存爲一個數據表。每個.csv的基本結構都是一樣的。有需要跳過的標題信息(使用skip =很容易)。我很難跳過每個.csv文件的最後一行。每個.csv文件都有不同數量的行。R data.table:在文件夾中的所有.csv文件上使用fread跳過每個文件的最後一行
如果我在測試文件夾中只有一個文件,這個腳本完全跳過第一行(使用跳躍=)和最後一行(使用NROWS =):
file <- list.files("Q:/Test/", full.names=TRUE)
all <- fread(file, skip = 7, select = c(1:7,9),
nrows = length(readLines(file))-9)
當保存在多個文件test文件夾,這是我試過的代碼:
file <- list.files("Q:/Test/", full.names=TRUE)
L <- lapply(file, fread, skip = 7, select = c(1:7,9),
nrows = length(readLines(file))-9)
dt <- rbindlist(L)
它不會產生L和給了我這個錯誤:
Error in file(con, "r") : invalid 'description' argument
當每個.csv具有不同數量的行時,如何跳過每個.csv的最後一行的任何想法?
我正在使用data.table版本1.9.6。謝謝。
不要使用'readLines',這會浪費很多精力。試試這裏的方法:http://stackoverflow.com/questions/3137094/how-to-count-lines-in-a-document – MichaelChirico
也許'nrow'可以使用負值來跳過文件底部的行。提交[#1643](https://github.com/Rdatatable/data.table/issues/1643)。 – Arun
也許'head -n-1'直接傳遞給'fread'。或者'grep -v'來刪除尾部頁腳文本。參見[這個新頁面]的第1部分(https://github.com/Rdatatable/data.table/wiki/Convenience-features-of-fread)。 –