2012-03-13 52 views
1

當我嘗試讀取包含斯堪的納維亞字母爲R中數據幀中的逗號分隔值文件,用read.table()命令,它不出來的權利。也就是說,我想要的字母,如「A」,「AE」,「O」,「A」和「O」被正確包括在內。目前,它們以非字母符號表示,並且經常會導致其他操作(如繪圖)投訴。正確讀斯堪的納維亞字母到數據幀

我救了我的CSV文件the ordinary text editor in OS X,但我一直在使用TextWrangler也試過了,救了我的文件中的特定格式,如UTF-8和UTF-16,然後read.table()命令中指定我的編碼與"encoding="選項。

什麼是最小的例子,其中斯堪的納維亞字母從CSV文件導入數據框,看起來像?

回答

4

您需要包括關於您的區域更多的細節和你需要把樣品中的位置,人們可以得到它。目前我的Mac似乎被正確讀取字符(我不是在它甚至需要一個區域):

> read.table(text='"å", "æ", "ø", "ä"', sep=",") 
    V1 V2 V3 V4 
1 å æ ø ä 
> Sys.getlocale() 
[1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8" 

(我也發一個文件,TextEdit.app,它還會讀取正確。他們正確地顯示在繪製),你可以嘗試使用fileEncoding參數指定的輸入編碼:

> read.table(text='"å", "æ", "ø", "ä"', sep=",", fileEncoding="UTF-8") 
    V1 V2 V3 V4 
1 å æ ø ä 

...這無助於我,但是這可能會如果區域被設置爲「C 「這對於一些使用Mac的人來說似乎沒有任何理由發生。如果你只使用「編碼」參數函數read.table來,它什麼都不做在輸入階段,但僅分配給讀操作的結果的屬性。

相關問題