[英]R/Rstudio on Windows 8: how to install packages in user home when username contains special/accented/non-ascii characters
前提:我正在嘗試調試學生的問題,當我獲得更多詳細信息時,我將使問題更精確。 這可能是由於某些較早的安裝問題所致。
首次通過install.packages
安裝軟件包時,R建議在用戶家中創建個人庫C:\\Users\\username\\Documents
。
在這種情況下,用戶名包含一個帶重音的字符,該字符在對話框中看起來已經被打亂了:
該命令失敗,因為它嘗試創建一個新文件夾C:\\Users\\Noémie
而不是使用現有的C:\\Users\\Noémie
:
現在,翻譯é
成é
是UTF-8編碼的字符的解碼結果é
假設WINDOWS-1252的編碼。 所以我的猜測是R假設文件名的編碼錯誤。
我已經花了一些時間尋找解決方案,關於文件內容編碼問題有很多信息,但是除了這個未解決的問題之外,我在Windows上找不到關於R的文件名編碼問題的任何信息。 而且我猜想很多人的Windows用戶名中都有特殊字符,他們仍然設法運行R。因此,這似乎是一個罕見的錯誤,應該有一種解決方法。
附加信息:我得到了sessionInfo()
的輸出:
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)
locale:
[1] LC_COLLATE=French_Belgium.1252 LC_CTYPE=French_Belgium.1252 LC_MONETARY=French_Belgium.1252
[4] LC_NUMERIC=C LC_TIME=French_Belgium.1252
我的一個學生有同樣的問題。 此外,當主目錄的路徑(在整個RStudio中用〜表示)包含重音字母時,RStudio不會讀取R的配置文件〜/ .Renviron和〜/ .Rprofile。
這會為包安裝創建一個catch 22:RStudio無法創建其默認個人庫,並且您無法通過在〜/ .Renviron中設置R_LIBS_USER來指定另一個。
(請注意,R GUI可以正常工作。)
據我所知,以下似乎是一個可行的解決方法:欺騙RStudio認為主目錄位於路徑中沒有重音字母的其他位置。 為此,必須創建或修改一個稱為HOME的環境變量。
例如,將用戶環境變量HOME設置為“ C:\\”,RStudio會將〜視為C:。 R的配置文件放在C:\\中,將在啟動時讀取。
據我所知,HOME不是Windows上的默認環境變量,並且定義它不會干擾“正常” Windows應用程序。
我正在運行Win10 32位和R的舊版本( R version 3.1.0 (2014-04-10) -- "Spring Dance" Platform: i386-w64-mingw32/i386 (32-bit)
),但是以下解決方案可能適合您:
install.packages()
具有一個lib
參數,您可以在其中指定要將軟件包安裝到的位置。
我能夠成功運行命令
install.packages('plyr', lib='C:/Noémie')
和
install.packages('plyr', lib='C:/Users/Roland')
我無法成功運行以下命令,這可能是由於Windows權限以及能夠在非您的用戶目錄中寫入的原因(因為我是Roland,而不是Noémie):
> install.packages('plyr', lib='C:/Users/Noémie')
Warning in install.packages :
'lib = "C:/Users/Noémie"' is not writable
Error in install.packages : unable to install packages
最后一條命令會為您解決問題嗎? 如果不是這樣,嘗試傳遞傳遞給lib
的字符向量的編碼可能會很孤立。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.