首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效输入导致read.csv中断数据

无效输入导致read.csv中断数据
EN

Stack Overflow用户
提问于 2013-10-27 03:31:09
回答 3查看 20.1K关注 0票数 10

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

下面是我运行的代码:

代码语言:javascript
复制
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

我需要做什么才能读取整个数据集?

EN

回答 3

Stack Overflow用户

发布于 2013-10-27 03:58:59

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

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

票数 8
EN

Stack Overflow用户

发布于 2018-01-03 01:11:20

我今天遇到了一个类似的问题,并花了几个小时。我尝试更改编码/fileEncoding、setlocal和这里找到的其他一些东西。但他们都不适合我。

最后,我找到了一个非英语的帖子(那些人可能对此有更多的经验)和这个技巧:将开放模型从"r“改为"rb”。

在我的例子中,我使用readLines,所以它是

代码语言:javascript
复制
fileIn=file("userinfo.csv",open="rb",encoding="UTF-8")
lines = readLines(fileIn, n = rowPerRead, warn = FALSE)

我不完全理解为什么,我猜Unicode字符在Byte中,所以如果它不是Byte读取的,那么大块头就会阻止扫描。

票数 5
EN

Stack Overflow用户

发布于 2018-10-30 18:42:01

经过几个小时的努力,像这样的csv,尝试像fileEncodingquote这样的read.csv参数,我最终在readr包中使用了read_csv -只是使用了默认的参数-它完美地立即加载了所有东西!

这是一个没有想象力的答案,但在你尝试自己对整个文件进行逆向工程之前值得一试……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19610966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档