16

我在用 R 读取 csv 文件时遇到了一些问题。

 x=read.csv("LorenzoFerrone.csv",header=T)

Error in make.names(col.names, unique = TRUE) : 
      invalid multibyte string at '<ff><fe>N'

我可以使用 libre office 毫无问题地读取文件。

我无法上传文件,因为它充满了敏感信息。

我能做些什么?


设置编码似乎是解决问题的方法。

> x=read.csv("LorenzoFerrone.csv",fileEncoding = "UCS-2LE")
> x[2,1]
[1] Adriano Caruso
100 Levels:  Ada Adriano Caruso adriano diaz Adriano Diaz alberto ferrone Alexey ... Zia Tina
4

11 回答 11

10

这将按原样读取列名,并且不会返回任何错误:

x = read.csv(check.names = F)

要删除/替换列名中的麻烦字符,请使用以下命令:

iconv(names(x), to = "ASCII", sub = "")
于 2018-02-13T15:37:30.720 回答
9

原因是无效的编码。我已经解决了用 e 替换所有“è”

于 2015-03-18T08:43:57.453 回答
4

我发现这个问题是由文件代码引起的,我通过用 Windows 注释打开它,用 UTF-8 保存,然后用 Excel 重新打开(一开始是乱码),然后用 UTF-8 重新保存来解决这个问题,然后就可以了!

于 2018-04-05T01:50:30.490 回答
2

您需要在sep参数中指定正确的分隔符。

于 2014-12-12T07:28:20.183 回答
2

在读取 csv 时,您始终可以使用“Latin1”编码:

 x = read.csv("LorenzoFerrone.csv", fileEncoding = "Latin1", check.names = F)

我正在添加check.names = F以避免在标题中用点替换空格。

于 2020-01-15T19:25:52.970 回答
1

通常是编码问题。您可以尝试更改编码或删除有问题的字符(只需使用您喜欢的编辑器并替换所有实例)。在某些情况下,R 会吐出 char 位置,例如:

无效的多字节字符串 1847

这应该让你的生活更轻松。另请注意,您可能需要多次重复此过程(删除所有违规字符或尝试多种编码)。

于 2015-08-25T10:50:43.060 回答
1

将文件格式更改为 - CSV UTF-8。它对我有用。

于 2018-06-26T05:27:46.223 回答
0

不确定这是否有帮助,只是有一个类似的问题,我通过从我试图导入的 csv 中删除 " 解决了这个问题。数据库的第一行的列名写为 "colname","colname2","etc" 和我删除了所有的 " 并且在 R 中读取了 csv 就好了。

于 2014-04-30T18:57:22.063 回答
0

不确定这是否有帮助,但我遇到了类似的问题并发现这是因为我的“csv”文件有一个 .csv 后缀,但实际上是一个 .xls 文件!

于 2014-03-20T15:40:27.817 回答
0

我通过删除文字中的任何图形符号(即重音符号)解决了这个问题。我的标题是用西班牙语写的,里面有一些重音符号。我用简单的单词(México=Mexico)替换,问题就解决了。

于 2015-10-28T04:38:55.870 回答
0

我知道这是一篇旧帖子,但只是想对非英语本地人说,如果您使用“,”作为小数分隔符,

于 2016-11-09T11:44:20.453 回答