Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中导入具有特殊字符的数据_R_Csv_Character Encoding_Special Characters - Fatal编程技术网

在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

下图显示了在R中导入数据(记事本)之前和导入之后数据的状态

我使用以下命令在R中导入它:

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正确-通常您可以检查编码类型(取决于您使用的浏览器)。因为它不是英文的,所以你必须查一下他们最常用的编码方式。。。如果你不能弄明白这一点,那么总是可以选择找到模式,然后进行数据挖掘。-也许这会有所帮助:不久前我遇到了一个与此相似的问题。我收到的一些建议可能有助于缩小错误的来源: