有沒有辦法在一個csv上使用data.table/fread,這會導致無效的csv失敗?例如一個3G csv文件,有幾行,5個字段,而不是3個。如果不是有另一個合理快速的驗證方法?data.table:讀入有效的csv
2
A
回答
0
@ alistaire的評論暗示我正在使用過時的圖書館版本,事實上我是。版本1.8.10在沒有投訴CSV讀取,但版本1.9.6失敗,出現錯誤:
Error in fread("~/bad.csv") :
Expecting 3 cols, but line 929579 contains text after processing all cols
...
我真的很高興能有這個功能!
0
通常閱讀,然後檢查字段的數量,看看它是否有效。之後,你可以做你的工作。
3
我發現readr
在處理奇數文件方面比fread
好一點。指定所需的列,並在導入時放棄其他任何列。例如:
library(readr)
input <- read_csv(file = file.path,
col_names = c("date", "time", "data"),
col_types = cols_only(
date = col_character(),
time = col_character(),
data = col_character()
),
trim_ws = TRUE
)
注:readr
將輸出一個警告,告訴你,3列是「預期」,但更多的人對某些行「發現」,但它不會失敗。 fread
通常會因此失敗,即使您添加了select
參數來指定僅保留所需的列數。
+0
'fread'在開發版本中使用'fill'參數進行擴展。當設置爲「TRUE」時,它將填充空白點。 – Jaap
相關問題
- 1. PHP有效地讀取csv文件
- 2. 將多個csv文件有效地讀入熊貓數據框
- 3. data.table中的有效日期差異
- 4. 讀用fread只有一條線從data.table
- 5. C#閱讀csv文件給出了不是有效的路徑
- 6. 讀入從CSV文件PYTHON
- 7. 讀入csv文件從HDFS
- 8. 將CSV讀入內存
- 9. 將.csv文件讀入MATLAB
- 10. 有效地將文件讀入Pascal AnsiString
- 11. Android從輸入流有效讀取
- 12. R data.table加入卷
- 13. 在Java中讀取csv文件CSVReader或RandomAccessFile更有效嗎?
- 14. 將兩個標題的csv讀入data.frame
- 15. 我的方式是有效地複製data.table中的行嗎?
- 16. 閱讀巨大的.csv文件與單引號中的一些列,但不是所有與freed從data.table包
- 17. 從一個data.table替換爲另一個DT的最有效值?
- 18. 在data.table文件中創建一個更有效的循環
- 19. 如何最有效地將data.table中的列設置爲NA?
- 20. 按年分組data.table結果的有效方法
- 21. 加入並加入data.table的組合?
- 22. 高效插入默認行缺失在data.table
- 23. 返回數據幀vs寫入磁盤並從磁盤讀取csv的效率
- 24. R:如何讀取帶有data.table :: fread的CSV文件,其逗號爲小數,點數爲千分隔符=「。」。
- 25. 如何檢查有效的csv文件?
- 26. 導入和拆分CSV輸入,幫助有需要的只讀取的
- 27. 只有崩潰data.table
- 28. 一批具有data.table
- 29. 閱讀CSV文件中的所有列?
- 30. 有效導入.csv到mysql到幾個相關表格
當列存在不一致時,'fread'確實會失敗。你有沒有最小的例子? – alistaire