2022年6月17日 星期五

R-normalizePath Error - OneDrive/??

問題:

近日安裝 Windows 與 R之後會有以下 normalizePath 語法錯誤:




查詢發現電腦確實有以下之目錄 C:\Users\asus\OneDrive\文件, 因此最有可能原因是此路徑包括中文字型"文件", 因此R解析結果為錯誤??

使用 path.expand 函數亦是錯誤

> path.expand("~/")

[1] "C:/Users/asus/OneDrive/??/"


使用 normalizePath 函數也有錯誤

> normalizePath(path.expand("~/"))

[1] "C:\\Users\\asus\\OneDrive\\??\\"

Warning message:

In normalizePath(path.expand(path), winslash, mustWork) :

  path[1]="C:/Users/asus/OneDrive/??/": 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。


方法:

步驟1. 先關閉 RStudio


步驟2. 新增系統變數

1. 程式集 \ 設定 \ 關於 \ 進階系統設定


2. 選取環境變數


3. 按 系統變數 \ 新增














4. 設定名稱與值, 依實際需求修改, 按確定.

變數名稱: HOME

變數值:     C:\Users\asus






步驟3. 重新開啟 RStudio 或重新啟動 Windows 結果為正確

> path.expand("~/")

[1] "C:/Users/asus/"

> normalizePath(path.expand("~/"))

[1] "C:\\Users\\asus"

# end

6 則留言:

  1. 謝謝您的耐心分享。 請問第二步的 變數名稱: 自訂是可以理解的,但變數值: (如你的例子中: C:\Users\asus 應該考慮到那些方面呢?是R文件的存放處嗎?還是R Profile files 的位置?) 請再指教,萬分感謝!

    回覆刪除
    回覆
    1. Hi FintechV, 第二步的變數名稱建議考量「使用者目錄」,也是 Rconsole 存放位置。如果改為其他目錄,有可能仍會有錯誤。另 Rprofile.site 預設會置於R安裝目錄 C:\Program Files\R\R-4.2.1patched\etc 資料夾之中。

      刪除
  2. 您好~謝謝您的分享~
    想知道如果R是安裝在D槽中,變數名稱一樣是參考Rconsole 在D槽中的存放位置嗎?像是我的 Rconsole是放置在D:\Program Files\R\R-4.2.1patched\etc ,因此環境變數也是使用這個位址嗎?
    謝謝您~

    回覆刪除
  3. Hi friend,

    收信愉快,關鍵步驟是步驟2. 新增系統變數。考慮使用者名稱是Muriel,則 HOME 變數值設定為 「C:\Users\Muriel」,此設定值與R安裝目錄的Rconsole檔案較無直接關係,參考囉。

    回覆刪除
  4. 您好!想請問我的rstudio若現下載的位置是C:\Program Files\R studio\bin,名稱設定為Home、變數值設定為C:\Program Files\R studio\bin是哪裡有問題呢~不知道為什麼設定完後還是不行。

    回覆刪除
  5. Hi friend,

    (1).HOME 的設定值, 應該與 RStudio 沒有直接關係.
    (2)."C:\Program Files\R studio\bin" 此名稱中有包括空白符號, 建議不要使用.
    (3).考慮使用者名稱是 abc, 則 HOME變數值設定為 C:\Users\abc 應該就OK.

    回覆刪除