输入无效会导致read.csv切断数据

时间:2013-10-26 19:31:09

标签: r

我一直在尝试将一个csv文件读入R,但它一直在切断。我认为这可能是由于文件编码,但我不确定。

以下是我运行的代码:

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

阅读整个数据集需要做什么?

3 个答案:

答案 0 :(得分:8)

因此,虽然我不太清楚原因,但最终工作的是在调用read.csv函数时将fileEncoding更改为latin1

在另一个答案here中提到了这一点。不知何故,这是我没有尝试过的一件事......

答案 1 :(得分:3)

我今天遇到了类似的问题,花了好几个小时。 我尝试更改编码/ fileEncoding,setlocal以及此处发现的其他一些内容。但它们都不适合我。

最终我发现了一个非英文帖子(那些人可能对此有更多的经验)和这个诀窍:将开放模型从“r”改为“rb”。

在我的情况下,我使用readLines,所以它是

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

我不完全理解为什么,我的猜测是Unicode字符是Byte,所以如果它不被Byte读取,那个大家伙就会阻止扫描。

答案 2 :(得分:1)

经过数小时的类似csv的努力,像read.csvfileEncoding这样的quote的参数实验之后,我终于在read_csv包中使用了readr只需使用默认参数-即可立即完美加载所有内容!

一个没有想象力的答案,但是值得尝试,然后再尝试对整个文件进行反向工程...