的WinXP-X32,R-2.13.0奇怪的字符:R和Windows語言環境的交互?
親愛的名單,
我有一個問題,(我認爲)涉及到
我想刮Windows和R.
之間的相互作用與夏威夷羣島上的數據表。這是我的R代碼裏面:library(XML)
u <- "http://en.wikipedia.org/wiki/Hawaii"
tables <- readHTMLTable(u)
Islands <- tables[[5]]
輸出(第一組列):
Island Nickname > > Islands Island Nickname > > Location 1 Hawaiʻi[7] The Big
島19A°34A€²N155A°30A€²W/  19.567°N 155.5°/ 19.567; -155.5 2毛伊島[8]谷島20°48°N 156°20°/°C/ °20.8°N 156.333°/°20.8; -156.333 3 Kaho»olawe [9]目標島20°33'N 156°36°/°C 20.55°N 156.6°/ 20.55°; -156.6 4拉涅我[10]菠蘿島 20°50°N 156°56°/°0°°20.833°N 156.933°/°20.833; -156.933 5MolokaÊ»i [11]友好島21°08' 157°02'/ 21.133°N 157.033°/ 21.133; -157.033 6或ahu [12]聚會場所 21°28°N 157°59°/°21.467°N 157.983°W/21.467; -157.983 7考艾我[13]花園小島22°05'N 159°30'/ 22.083°N 159.5°/ 22.083; -159.5 8倪仕豪[14]故宮
21°54'N 160°10°/ 21.9°N 160.167°W/21.9; -160.167
正如你所看到的,那裏有「怪異」的字符。我也試過readHTMLTable(u, encoding = "UTF-16")
和readHTMLTable(u, encoding = "UTF-8")
但這並沒有幫助。
在我看來,有可能是用的字符集的Windows設置和R.相互作用的問題
sessionInfo()
給
> sessionInfo()
R version 2.13.0 (2011-04-13)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=Dutch_Netherlands.1252 LC_CTYPE=Dutch_Netherlands.1252 LC_MONETARY=Dutch_Netherlands.1252
[4] LC_NUMERIC=C LC_TIME=Dutch_Netherlands.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] XML_3.2-0.2
我也試圖讓R中,使用另一通過輸入設置:Sys.setlocale("LC_ALL", "en_US.UTF-8")
,但這產生了迴應:
> Sys.setlocale("LC_ALL", "en_US.UTF-8")
[1] ""
Warning message:
In Sys.setlocale("LC_ALL", "en_US.UTF-8") :
OS reports request to set locale to "en_US.UTF-8" cannot be honored
此外,我試圖做出改變directl y從Windows命令提示符處使用:chcp 65001
及其變體,但這並未改變任何內容。
我注意到通過搜索網絡,其他人也有問題,但一直沒能找到解決方案。我看起來像這是Windows和R如何交互的問題。不幸的是,我所有的三臺電腦都有這個問題。它發生在WinXP-x32和Win7-x86下。
有沒有辦法讓R覆蓋Windows設置,否則可以解決問題? 我也嘗試了其他網站,每當有待刪除的文本中有é,ü,ä,等等時就會出現問題。
謝謝 羅傑
交叉帖子,Ripley教授+1:https://stat.ethz.ch/pipermail/r-help/2011-May/277057.html – mdsumner 2011-05-04 11:01:52
奇怪。我運行Windows 7(64位),你的代碼在我的機器上完美運行。 – Andrie 2011-05-04 11:02:40
只是在黑暗中拍攝:Set.setlocale文檔建議更改會話中的編碼可能會被忽略,不推薦使用。您可以嘗試從命令行啓動R,並按照[在此處]概述的方式聲明編碼(http://cran.r-project.org/doc/manuals/R-intro.html#Invoking-R-from-the-command -line) – joran 2011-07-15 01:14:30