以下图片显示了在导入R(导航记录)和导入之后数据的处理方式。
我使用以下命令将其导入R:
Data <- read.csv('data.csv',stringsAsFactors = FALSE,header = TRUE,quote = "")
可以看出,诸如ae之类的特殊字符被替换为类似A |的东西(左边第19行,第18行或右边)。有没有办法导入CSV文件? (使用R)
答案 0 :(得分:2)
您的问题是编码问题。这有两个方面:首先,Notepad ++保存的内容可能与您在保存的文本文件中所期望的编码不对应,其次,R可能正在使用基于不同的read.csv()
读取文件编码,这是特别可能的,因为如果您使用Notepad ++,那么这表明您使用的是Windows,因此您可能无法将UTF-8作为R的系统区域设置。
所以轮流讨论每个问题:
让Notepad ++以特定的编码保存文件。您可以在此处使用these instructions为新文件设置编码。我总是使用UTF-8,但是因为你的文本是丹麦语,所以拉丁语-1也应该用。
要验证文本的编码,您可能希望使用RTools附带的file
实用程序。这将告诉您一些关于文件可能从命令行编码的信息,尽管它并不完美。 (OS X和Linux用户已经拥有此功能,无需安装其他实用程序。)
将.csv文件导入R时设置编码。使用read.csv()
导入文件时,请指定encoding = "UTF-8"
或encoding = "Latin-1"
。您可能还想检查系统编码是什么,并与之匹配。您可以使用Sys.getlocale()
执行此操作(并将其设置为Sys.setlocale()
。)例如,在我的系统上:
> Sys.getlocale()
[1] "en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8"
您当然可以将其设置为Windows-1252,但如果在其他平台上使用此功能,则可能会遇到麻烦。 UTF-8是最好的解决方案。