在R中导入具有特殊字符的数据
下图显示了在R中导入数据(记事本)之前和导入之后数据的状态 我使用以下命令在R中导入它:在R中导入具有特殊字符的数据,r,csv,character-encoding,special-characters,R,Csv,Character Encoding,Special Characters,下图显示了在R中导入数据(记事本)之前和导入之后数据的状态 我使用以下命令在R中导入它: Data <- read.csv('data.csv',stringsAsFactors = FALSE,header = TRUE,quote = "") 数据您的问题是编码问题。这有两个方面:第一,Notepad++保存的内容可能与保存的文本文件中预期的编码不一致;第二,R可能正在使用read.csv()以不同的编码读取文件,这是特别可能的,因为如果您使用记事本+,那么这表明您使用的是Wind
Data <- read.csv('data.csv',stringsAsFactors = FALSE,header = TRUE,quote = "")
数据您的问题是编码问题。这有两个方面:第一,Notepad++保存的内容可能与保存的文本文件中预期的编码不一致;第二,R可能正在使用read.csv()
以不同的编码读取文件,这是特别可能的,因为如果您使用记事本+,那么这表明您使用的是Windows,因此您可能无法将UTF-8作为R的系统语言环境
因此,依次处理每个问题:
让记事本++以特定编码保存文件。在这里,您可以使用设置新文件的编码。我总是使用UTF-8,但在这里,因为你的文本是丹麦语,拉丁语-1也应该适用
要验证文本的编码,您可能希望使用随附的文件
实用程序。这将从命令行告诉您一些关于文件可能的编码的信息,尽管它并不完美。(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是最好的解决方案
您是否尝试过install.packages(“data.table”);图书馆(数据表);fread()
?如果您知道编码类型,可以在readLines中的参数中设置。@dc3数据来自网页抓取,因此我猜它们没有标准格式。对吗?或者可能是?@MpizosDimitris正确-通常您可以检查编码类型(取决于您使用的浏览器)。因为它不是英文的,所以你必须查一下他们最常用的编码方式。。。如果你不能弄明白这一点,那么总是可以选择找到模式,然后进行数据挖掘。-也许这会有所帮助:不久前我遇到了一个与此相似的问题。我收到的一些建议可能有助于缩小错误的来源: