2014-10-07 36 views
0

我需要閱讀我閃亮的應用程序中的一些txt表格,並且它的一些列是文本。當我讀了一張拉丁字符的表格(á,ó,é,ô,ç...)時,它顯示爲 。我想我需要使用UTF-8編碼來閱讀它,我嘗試了以下代碼,但它對我無效。閱讀拉丁字符時的編碼問題

test<-read.delim("test.txt",sep="\t",dec=",",header=TRUE, encoding="UTF-8") or 
test<-read.table(file = "test.txt", dec = ",", fileEncoding = "utf-8") 

這裏很短的腳本來重現我的問題:使用

x<- matrix(c('áeiou','aêiou','aeíou','aeiõu','aeiouç',1:5),ncol=2) 
write.table(x,"test.txt",sep="\t") 
test<-read.delim("test.txt",sep="\t",header=TRUE) 

I'm Windows操作系統和我有這樣的相關信息:

localeToCharset() 
[1] "ISO8859-1" 


sessionInfo() 
R version 3.1.1 (2014-07-10) 
Platform: i386-w64-mingw32/i386 (32-bit) 

locale: 
    [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 
[3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C      
[5] LC_TIME=Portuguese_Brazil.1252 

在此先感謝!

回答

1

工作對我來說:

> Sys.getlocale() 
[1] "LC_COLLATE=English_Ireland.1252;LC_CTYPE=English_Ireland.1252;LC_MONETARY=English_Ireland.1252;LC_NUMERIC=C;LC_TIME=English_Ireland.1252" 
> x<- matrix(c('áeiou','aêiou','aeíou','aeiõu','aeiouç',1:5),ncol=2) 
> write.table(x,"test.txt",sep="\t") 
> test<-read.delim("test.txt",sep="\t",header=TRUE) 
> test 
     V1 V2 
1 áeiou 1 
2 aêiou 2 
3 aeíou 3 
4 aeiõu 4 
5 aeiouç 5 
> sessionInfo()$platform 
[1] "x86_64-w64-mingw32/x64 (64-bit)" 

嘗試

Sys.setlocale(category = "LC_ALL", locale = "English_Ireland.1252") 

或一些類似的語言環境。

+0

謝謝!如果我運行>測試,結果相同,但如果我在數據環境中選擇「測試」,則不會出現沒有 的結果。 – 2014-10-07 14:43:40