2013-10-26 122 views
4

我一直在嘗試將csv文件讀入R中,但它始終不中斷。我認爲這可能是由於文件編碼,但我不確定。輸入無效會導致read.csv中斷數據

這裏是我跑的代碼:

read.csv('crunchbase_companies_2.csv', fileEncoding="UTF-8", quote="") 

然後我得到一個警告消息:In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,: invalid input found on input connection

R讀取數據,但只能在達到特殊字符時停止。所以我只能得到R中的部分數據。我粘貼了我在這裏得到的數據:http://pastebin.com/EQLnXz2W。請注意,雖然它會切斷「Ì」之類的內容。所以這些字符不在示例數據中。

我也檢查了在終端使用file編碼。它返回Non-ISO extended-ASCII English text, with CR line terminators

我需要做什麼來讀取整個數據集?

回答

6

因此,雖然我不太清楚爲什麼,但在調用read.csv函數時,最終工作的是將fileEncoding更改爲latin1

這是在不同的回答here中提到的。不知何故,這是我沒有嘗試過的一件事...

1

我今天遇到類似的問題,花了幾個小時。 我嘗試更改編碼/ fileEncoding,setlocal以及這裏找到的其他一些東西。但是他們都沒有爲我工作。

最終我找到了非英文文章(這些人可能對此有更多的經驗),並且這個技巧是:將開放模型從「r」改爲「rb」。

就我而言,我使用readlines方法,所以它的

fileIn=file("userinfo.csv",open="rb",encoding="UTF-8") 
lines = readLines(fileIn, n = rowPerRead, warn = FALSE) 

我不完全理解爲什麼,我的猜測是Unicode字符是字節,所以如果它不是由字節讀取,那麼大傢伙會阻止掃描。

相關問題