2014-09-24 54 views
7

我試圖安裝rtools運行R,這樣我就可以安裝的軟件包(谷歌的causalimpact)和過程都表示我有我的R.從cmd在窗口

主要路徑環境問題問題

我無法從cmd窗口運行R

預期的行爲是下面的輸出,給>提示:

R version 3.1.1 (blah blah) 

... 

Type 'demo()' for some demos, 'help()' for on-line help, or 
'help.start()' for an HTML browser interface to help. 
Type 'q()' to quit R. 

但是實際結果是:

'C:\Program' is not recognized as an internal or external command, 
operable program or batch file. 

其他信息

不過,我可以運行RcmdRgui(除之外的所有內容)從cmd沒有錯誤。

Where R打印輸出C:\Program Files\R\R-3.1.1\bin\x64\R.exe

Where Rcmd打印輸出C:\Program Files\R\R-3.1.1\bin\x64\Rcmd.exe

Where Rgui打印輸出C:\Program Files\R\R-3.1.1\bin\x64\Rgui.exe

返回指向其各自的exe文件相同的路徑。

這顯然是與我的地球環境路徑的問題,但我看不出爲什麼會產生這個錯誤

的路徑看起來像(在最後一行將R路徑):

 c:\Rtools\bin  
    c:\Rtools\gcc-4.6.3\bin  
    C:\RBuildTools\3.1\bin 
    C:\RBuildTools\3.1\gcc-4.6.3\bin 
    c:\Rtools\bin 
    c:\Rtools\gcc-4.6.3\bin 
    C:\Python27\ 
    C:\Python34\  
    C:\Python34\Scripts  
    C:\Program Files (x86)\Intel\iCLS Client\ 
    C:\Program Files\Intel\iCLS Client\ 
    C:\windows\system32 
    C:\windows 
    C:\windows\System32\Wbem  
    C:\windows\System32\WindowsPowerShell\v1.0\  
    C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86 
    C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64 
    C:\Program Files\Intel\Intel(R) Management Engine Components\DAL  
    C:\Program Files\Intel\Intel(R) Management Engine Components\IPT  
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL 
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT  
    C:\Program Files (x86)\QuickTime\QTSystem\ 
    c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\  
    c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\  
    c:\Program Files\Microsoft SQL Server\100\Tools\Binn\ 
    c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\ 
    C:\strawberry\c\bin 
    C:\strawberry\perl\site\bin 
    C:\strawberry\perl\bin  
    C:\Program Files\MiKTeX 2.9\miktex\bin\x64\  
    C:\Program Files\MiKTeX 2.9\miktex\bin\x64\ 
    C:\Program Files\R\R-3.1.1\bin\x64 

我可以通過在cmd窗口中輸入任意一個名稱來運行Python和Perl,並且以同樣的方式指向R,我無法理解上述錯誤。

如果有人對我如何解決這個錯誤有任何建議,我將非常感激。

我還沒有在這裏問過這個問題,所以任何編輯/指針都非常感謝。

的原始路徑:

PATH=C:\Program Files\R\R-3.1.1\bin\x64;C:\Program Files\R\R-3.1.1\bin\x64;c:\Rt 
ools\bin;c:\Rtools\gcc-4.6.3\bin;C:\RBuildTools\3.1\bin;C:\RBuildTools\3.1\gcc-4 
.6.3\bin;c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;C:\Python27\;C:\Python34\;C:\Pyth 
on34\Scripts;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iC 
LS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\Sy 
stem32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x 
86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Intel\In 
tel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Manageme 
nt Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine 
Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Componen 
ts\IPT;C:\Program Files (x86)\QuickTime\QTSystem\;c:\Program Files (x86)\Microso 
ft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microso 
ft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Bi 
nn\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\strawberry\c\bi 
n;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files\MiKTeX 2.9 
\miktex\bin\x64\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Users\Tariq.Muma 
n\AppData\Local\Pandoc\ 
+1

你看過http://stackoverflow.com/questions/18306362/run-r-script-from-command-line?你能解釋你的問題與這個問題有什麼不同嗎? – JustinJDavies 2014-09-29 13:33:33

+1

@JustinJDavies這個人試圖在cmd中運行腳本,我想我需要在cmd窗口中打開一個解釋器,方法是在cmd中鍵入「R」,就像在cmd中鍵入「Python」或「Perl」一樣。 另一個問題在Linux中也是對的? – user124123 2014-09-29 14:19:12

+0

@JustinJDavies據我瞭解,這是我試圖安裝的其他軟件包如何遇到麻煩。 – user124123 2014-09-29 14:22:52

回答

7

嘗試調整PATH變量以PATH=C:\Progra~1\R\R-3.1.1\bin\x64;...

這似乎很可能,不知怎的,你的系統解析空格中Program Files作爲路徑的終止符。如上調整定義應該使這不可能。

+1

答案靈感來自http://stackoverflow.com/questions/17845809/c-program-is-not-recognized-error – JustinJDavies 2014-09-29 14:55:09

+0

答案的內容這就是我最初想的,但如果是這種情況,那麼Rcmd或Rgui都不會工作。 – user124123 2014-09-29 15:50:43

+0

你試過了嗎? – 2014-09-30 14:42:05

1

根據您如何設置PATH變量,您可能會遇到1024字符限制。我試着將它縮小,並設法將其縮小爲1152個字符,刪除長文件夾名稱和尾隨\個字符。您可能需要考慮清理此問題,並刪除未使用的路徑或使用一些別名來對聲明的路徑進行分組。

一種直接的方法是編輯HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment並直接編輯0​​值(然後重新啓動以激活新值)。

但是,請注意,雖然您可以輸入一個很長的路徑(最大環境變量長度;根據來源不同,最大環境變量長度爲2,048或32,768字節),但並非所有軟件都能夠正確讀取和處理它太長。

+0

受http://superuser.com/questions/387619/overcoming-the-1024-character-limit-with-setx – JustinJDavies 2014-09-29 16:47:54

+0

的啓發已經檢查了這一點,但它不是問題。 – user124123 2014-10-07 08:41:37

7

這是因爲空間而發生的。 CMD瞭解: 執行「C:\ Program」與參數「Files \ R \ R-3.1.1 \ bin \ x64 \ R.exe」。

你要引用整個字符串:

"C:\Program Files\R\R-3.1.1\bin\x64\R.exe" 

...一個訣竅是將它從Windows資源管理器拖放在您的命令窗口中的EXEC文件,你會得到正確的字符串使用。

+0

我試過這個,但仍然得到了同樣的錯誤。 – user124123 2014-10-07 11:29:59

0

這很簡單。就像你如何設置爲Java JDK Path變量,你集合R路徑:

PATH = 「C:\ Program Files文件\ r \ R-3.4.2 \ BIN \」 的編輯系統環境

控制面板中的變量。
檢查它是否正常工作!