当我将文本文件导入R时,我得到一个特殊字符附加到第一列的第一个值

时间:2013-03-06 22:12:04

标签: r

有时当我将文本文件导入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

有什么好方法可以避免这种情况吗?谢谢你的帮助。

3 个答案:

答案 0 :(得分:4)

您需要使用以下内容:

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

答案 1 :(得分:3)

当我使用Microsoft Word上的txt文件时出现此问题。我使用记事本将MS Word保存的文本中的数据复制到新的txt文件,问题解决了。

答案 2 :(得分:2)

很好,@ DarrenCook!

正如我在评论中所指出的,这是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")

如果这不能解决问题,请告诉我!