【问题标题】:When I import text file into R, I get a special character appended to the first value of the first column当我将文本文件导入 R 时,我得到一个特殊字符附加到第一列的第一个值
【发布时间】:2013-02-21 22:33:37
【问题描述】:

有时当我将文本文件导入 R 时,我会将字符“”附加到第一列的第一个值。有谁知道这是为什么?

例如具有以下值的文本文件:

2011_21,3130
2010_51,4153
2011_16,3168
2010_20,3945
2012_38,2099
2012_17,2436
2010_40,2090
2011_2 ,1462

在 R 中显示以下结果:

第一次我阅读了以下文件:

ts_data <- read.csv("yr_wk sales.csv", header=FALSE)
head(ts_data)

这是返回的数据:

 V1   V2
1 2011_21 3130
2    2010_51 4153
3    2011_16 3168
4    2010_20 3945
5    2012_38 2099
6    2012_17 2436

如何避免这种情况?

【问题讨论】:

  • 您使用的是哪个语言环境?
  • R 版本 2.15.2 (2012-10-26) 平台:x86_64-w64-mingw32/x64(64 位)语言环境:[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States。 1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252

标签: r


【解决方案1】:

打开您的 Excel .csv 文件,转到文件、另存为...,然后将文件类型从“CSV UTF-8(逗号分隔)(.csv)”更改为“CSV(逗号分隔) (.csv)' 文件类型。 放下麦克风 - 轻松固定。

【讨论】:

    【解决方案2】:

    正如我在 cmets 中所指出的,这是 Byte Order Mark。这里有关于处理它的讨论(http://cran.r-project.org/doc/manuals/R-data.html)。

    如果你知道文件编码,你可以把它整理出来。假设它是 UTF-8:

    ts_data <- read.table("yr_wk sales.csv", fileEncoding = "UTF-8")
    

    【讨论】:

    • 我一直在 Windows 用户创建的 .csv 文件中发现这个问题。奇怪的是,文件开头通常有一个字节顺序标记,但结尾没有。所以当我将文件编码设置为 UTF-8 时,我得到以下error: In read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on 'myfile'
    • 我也有同样的问题,'fileEncoding = "UTF-8" 没有解决。
    【解决方案3】:

    您需要使用以下内容:

    ts_data <- read.csv("yr_wk sales.csv", fileEncoding="UTF-8-BOM", header=FALSE)
    head(ts_data)
    

    【讨论】:

      【解决方案4】:

      我在 Microsoft Word 上处理 txt 文件时遇到了这个问题。我使用记事本将MS Word保存的txt中的数据复制到一个新的txt文件中,问题就解决了。

      【讨论】:

      • 无论出于何种原因,记事本都无法使用。但是,我把它放到了 SublimeText 中,然后它就起作用了。
      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多