有沒有辦法在一個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. 讀完全引用的.csv有R data.table FREAD
- 2. PHP有效地讀取csv文件
- 3. 將多個csv文件有效地讀入熊貓數據框
- 4. data.table中的有效日期差異
- 5. Data.table循環效率
- 6. 讀用fread只有一條線從data.table
- 7. 適用於Java的良好和有效的CSV/TSV閱讀器
- 8. 讀取大型CSV文件的有效方法?
- 9. C#閱讀csv文件給出了不是有效的路徑
- 10. 將.csv文件讀入MATLAB
- 11. 讀入csv文件從HDFS
- 12. 讀入從CSV文件PYTHON
- 13. 將csv文件讀入DataTable
- 14. 將CSV讀入內存
- 15. 讀入.CSV個別值
- 16. 將csv讀入數組
- 17. vbscript將csv讀入數組
- 18. 有效地將文件讀入Pascal AnsiString
- 19. Android從輸入流有效讀取
- 20. 在Java中讀取csv文件CSVReader或RandomAccessFile更有效嗎?
- 21. 使用C#寫入CSV的效率
- 22. 有條件(不等式)加入data.table
- 23. data.table - 加入NA鍵
- 24. R data.table加入卷
- 25. 閱讀的CSV文件含有嵌入的逗號
- 26. 將csv讀入clojure的列表
- 27. 將CSV讀入對象中的矢量
- 28. 將兩個標題的csv讀入data.frame
- 29. d3 csv讀入數組中的對象
- 30. 我的方式是有效地複製data.table中的行嗎?
當列存在不一致時,'fread'確實會失敗。你有沒有最小的例子? – alistaire