2013-03-06 41 views
5

有時候的第一值的特殊字符,當我導入文本文件導入R,我得到字符「I»¿」附加到的第一個值第一列。有人知道爲什麼嗎?當我導入文本文件導入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 

任何避免這種情況的好方法?謝謝你的幫助。

+2

哪個區域是您使用? – 2013-03-06 22:13:47

+0

ř版本2.15.2(2012年10月26日) 平臺:x86_64的-W64-的mingw32/64(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 – hamel 2013-03-06 22:53:19

+0

的可能的複製[R的read.csv前面加上垃圾文本第一列名(http://stackoverflow.com/questions/24568056/rs-read-csv-prepending-1st-column-name-with-junk-text) – 2017-04-21 16:43:18

回答

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") 

如果這不能解決它,讓我知道!

+0

我一直在windows用戶創建的.csv文件中發現這個問題。奇怪的是,在文件開始時經常有一個字節順序標記,但不是最後。所以,當我將文件編碼設置爲UTF-8時,出現以下錯誤:在read.table(file = file,header = header,sep = sep,quote = quote,:不完整的由readTableHeader在'myfile 「' – Zach 2013-03-18 13:12:11

+0

我有同樣的問題,而如果」 fileencoding =‘UTF-8’不能解決問題。 – Torvon 2015-07-28 13:51:19

3

我在使用Microsoft Word上的txt文件時遇到了此問題。我使用記事本將MS Word保存的txt中的數據複製到新的txt文件中,問題就解決了。

+0

好的解決辦法。 – Noumenon 2016-06-08 03:25:29

+0

不管出於什麼原因,記事本沒有工作。但是,我把它丟進SublimeText,然後它的工作。 – Craig 2017-01-20 18:46:57

1

您需要使用以下方法:

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