我一直在尝试将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。请注意,当它命中像“µm”这样的东西时,它会被切断。因此,这些字符不在样本数据中。
我还使用file检查了终端中的编码。它返回Non-ISO extended-ASCII English text, with CR line terminators。
我需要做什么才能读取整个数据集?
发布于 2013-10-27 03:58:59
因此,虽然我不太清楚原因,但最终起作用的是在调用read.csv函数时将fileEncoding更改为latin1。
在另一个答案here中提到了这一点。不知何故,这是我没有尝试过的一件事……
发布于 2018-01-03 01:11:20
我今天遇到了一个类似的问题,并花了几个小时。我尝试更改编码/fileEncoding、setlocal和这里找到的其他一些东西。但他们都不适合我。
最后,我找到了一个非英语的帖子(那些人可能对此有更多的经验)和这个技巧:将开放模型从"r“改为"rb”。
在我的例子中,我使用readLines,所以它是
fileIn=file("userinfo.csv",open="rb",encoding="UTF-8")
lines = readLines(fileIn, n = rowPerRead, warn = FALSE)我不完全理解为什么,我猜Unicode字符在Byte中,所以如果它不是Byte读取的,那么大块头就会阻止扫描。
发布于 2018-10-30 18:42:01
经过几个小时的努力,像这样的csv,尝试像fileEncoding和quote这样的read.csv参数,我最终在readr包中使用了read_csv -只是使用了默认的参数-它完美地立即加载了所有东西!
这是一个没有想象力的答案,但在你尝试自己对整个文件进行逆向工程之前值得一试……
https://stackoverflow.com/questions/19610966
复制相似问题