我有許多不同大小的csv文件,但都很大。使用read.csv
將它們讀入R花費的時間比我一直耐心等待的時間要長(幾個小時)。我設法用data.table
的fread
以非常快的速度(不到一分鐘)讀取最大的文件(2.6 GB)。讀取R中的大型csv文件
當我嘗試讀取一半大小的文件時,出現了我的問題。我收到以下錯誤信息:
錯誤
fread("C:/Users/Jesper/OneDrive/UdbudsVagten/BBR/CO11700T.csv"
,:期待21周的cols,但行2557包含了處理所有 的cols後的文本。這很可能是由於一個或多個字段在非平衡 未轉義報價中嵌入了
sep=';'
和/或(未轉義)'\n'
字符。
fread
無法處理這種模棱兩可的情況,並且那些 行可能沒有按預期讀入。請閱讀 上的引用部分?fread
。
通過研究,我發現了將代碼quote = ""
添加到代碼中的建議,但它對我沒有幫助。我試過使用bigmemory
軟件包,但是當我嘗試時R會崩潰。我在一個帶有8 GB內存的64位系統上。
我知道這個問題上有很多線索,但我還沒有能夠解決任何解決方案的問題。我真的很想使用fread
(鑑於我對較大文件有良好的體驗),似乎應該有一些方法可以使其工作 - 只是無法弄清楚。
似乎是與'CO11700T.csv'裏面有什麼不一樣大的問題 – mtoto
您最好的選擇是看看第2557行可能使用bash或類似的例如頭部-2557 C011700.csv |尾巴-1'並剪切或手動編輯 –
@StephenHenderson給出了它看起來像Windows的路徑,所以他們可能會遇到'head'和'tail'的麻煩......(是的,安裝cygwin) – Spacedman