我正在嘗試閱讀包含以挪威語編寫的調查問卷數據的CSV文件。所以這個文件包含字母Ø然而,R似乎不能很好地處理這些字母,它們都顯示爲問號。將特殊字符(如ÆØÅ)讀入R(Rstudio)
我使用它來讀取數據:
data <- read.csv2("Responser - Vasket - 20.06.2013.csv")
有沒有我應該使用令R知道我有特殊字符的任何選項?
,我在Windows 7
我正在嘗試閱讀包含以挪威語編寫的調查問卷數據的CSV文件。所以這個文件包含字母Ø然而,R似乎不能很好地處理這些字母,它們都顯示爲問號。將特殊字符(如ÆØÅ)讀入R(Rstudio)
我使用它來讀取數據:
data <- read.csv2("Responser - Vasket - 20.06.2013.csv")
有沒有我應該使用令R知道我有特殊字符的任何選項?
,我在Windows 7
使用Rstudio你需要指定fileEncoding
參數read.csv2
(不以及(?)的encoding
)。
在你到達R之前,最好檢查文件的編碼是使用文本編輯器。例如,如果您在Notepad ++中打開文件,則使用編碼菜單可以查看和更改字符編碼。在TextPad中,您可以從「另存爲...」對話框更改編碼。大多數文本編輯器都會有這樣的功能。
這是您需要傳遞給fileEncoding
的值;如果文件不是已經存在的,你不能僅僅聲明一個文件爲UTF-16。這就是爲什麼你有警告。
fileEncoding =「UTF-16」給我警告並取消導入。 ISO-8859-1對問題標記沒有任何規定: -/ –
hi @OleHenrikSkogstrøm你怎麼能解決這個問題?我需要用挪威語和瑞典語字母輸入數據 – dsauce
鑑於我的R版本和設置,這適用於我:
在記事本中,我檢查csv文件是否與'Encoding:ANSI'一起保存。
在RStudio:工具/選項/默認文本編碼:ISO8859-1
我試着用這樣的僞數據:從@Ole亨裏克Skogstrøm
dd <- data.frame(area = c("øø", "åå", "ææ"), site = c("åå", "ææ", "øø"))
write.csv2(x = dd, file = "åæø.csv", row.names = FALSE)
dd2 <- read.csv2(file = "åæø.csv")
all.equal(dd, dd2)
sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=Norwegian (Bokmål)_Norway.1252 LC_CTYPE=Norwegian (Bokmål)_Norway.1252
[3] LC_MONETARY=Norwegian (Bokmål)_Norway.1252 LC_NUMERIC=C
[5] LC_TIME=Norwegian (Bokmål)_Norway.1252
getOption("encoding")
[1] "native.enc"
編輯如下評論08月07日7:57時
@Ole HenrikSkogstrøm透露說:「如果我在Rstudio中使用視圖命令,此錯誤仍然存在」和「如果我只是將它輸出並將結果放入控制檯,原始文章中提供的信息不足。
我的回答上述作品原來的問題確實問:讀取特殊字符爲R.是什麼不行,並且這是在OP不規定,是,「View
-ing」 RStudio中的對象不正確地顯示。從控制檯運行View(dd)
(dd
,請參閱上面的虛擬數據),並且在「工作區窗格」中單擊對象時,在數據查看器中顯示爲「黑色菱形問號」。
另一方面,如果僅使用RGui而不使用RStudio,則View(dd)
將在數據查看器中正確顯示字符。
因此,而不是從讀入R的問題,這似乎是一個問題與View
-他們在RStudio。另見this post on RStudio support。
嗨,抱歉,花了這麼長時間才能找到你。我暫時忘了這個問題。這個答案寫得很好,但它對我來說不起作用。我得到和你一樣的語言環境輸出,但是我的數據集dd和dd2仍然顯示爲問號。 :-/ 有什麼建議麼? –
嗯......和'getOption(「encoding」)'給出「native.enc」?試試看:'read.table(text ='「æ」,「ø」,「å」',sep =「,」,encoding =「native.enc」)? – Henrik
奇怪的是,如果我創建一個數據框並在Rstudio中使用視圖命令,這個錯誤仍然存在。但是,如果我只是將它輸出並將結果放在控制檯中,它的工作原理......任何想法爲什麼? :) –
Hei Henrik,當包含ØÆÅ的csv文件(由Excel製作)在R中打開時,我會遇到同樣的問題,他們會將挪威文字母顯示爲中間帶有白色問號的黑色菱形。對我來說,這個問題肯定是基於編碼的,但是我無法成功地使用「encoding」或「fileEncoding」來正確打開它們。
我通過在記事本中打開csv然後將其轉換爲文本文件並將編碼從「ANSI」更改爲「UTF-8」來解決了我係統上的問題。看例子。
下面的鏈接包含由Excel中,一個在MSDOS編碼(名稱CSV MSDOS)其他在 「逗號分隔」 編碼(名稱CSV)式編碼創建了兩個的CSV文件
https://drive.google.com/folderview?id=0BzoGQiFdDwiNNm02UnNLVVNja3c&usp=sharing
在記事本中打開它們應顯示MS-DOS版本具有不正確的字母表示形式(因此可以忽略),而「逗號分隔」版本具有正確的表示形式。將「Names CSV」文件保存爲文本文件,編碼爲「UTF-8」,名稱爲「Names CSV UTF8」。將R中的工作目錄設置爲文件所在的文件夾並運行以下代碼。
test1 <- read.csv2("Names CSV.csv")
test2 <- read.csv2("Names CSV UTF8.txt")
test1應該顯示帶有問號test2的黑色鑽石,並應正確顯示名稱。
我認爲以前的答案可能沒有工作,因爲表是由R創建的R與R設置字符編碼,因爲我有問題,我相信你也是一個不同的系統軟件設置編碼。
如果你有很多文件需要處理,這個解決方案並不是非常有用,但它至少是一個開始。
嘗試'編碼=「UTF-16」「 – user1609452
或enocding =」ISO-8859-1「應該這樣做。根據[this](http://en.wikipedia.org/wiki/ISO/IEC_8859-1):請參閱完整覆蓋的語言。 – agstudy
這些都解決了它。我仍然收到問號。還有什麼提示? –