2015-11-11 49 views
12

मुझे R से बाहरी उपकरण निष्पादित करने की आवश्यकता है और उस उपकरण में प्रक्रिया त्रुटियों (यदि कोई हो) हो। मैं कुछ मेरे काम से परिचित करने के लिए 3 कार्यों पता:आर सिस्टम फ़ंक्शंस हमेशा त्रुटि देता है 127

shell, system and system2. 

Thying उन परीक्षण करने के लिए, मुझे लगता है कि आदेश

shell("notepad") 

नोटपैड को खोलता है देखते हैं। जहां तक ​​मुझे पता है कि खोल त्रुटियों की जांच करने की अनुमति नहीं देता है (stderr में देखने के लिए कोई इंटरफ़ेस नहीं है)।

जब मैं

system("notepad") 

या

system2("notepad") 

R फ्रीज़ फोन उन आदेशों बनाने की कोशिश कर।

system("start notepad") 

या

system2("start notepad") 

रिटर्न

Warning message: 
running command '"start notepad"' had status 127 
+0

समस्या पीएटीएच में नहीं होने के कारण 'नोटपैड' तक उबालती है और इसलिए इसे निष्पादित करने के लिए आर को दिखाई नहीं देती है। मेरी मशीन पर, मैं बिना किसी परेशानी के 'सिस्टम ("जावा-वर्जन") को कॉल कर सकता हूं। आश्चर्यजनक रूप से, मुझे अपने पैथ में जोड़ने के बाद भी आर से लॉन्च करने के लिए नोटपैड नहीं मिला। –

+0

मैं काम करने के लिए 'सिस्टम ("गिट संस्करण") भी प्राप्त कर सकता हूं। आर में गैर कमांड लाइन प्रोग्राम के साथ कोई समस्या हो सकती है। आप आर से नोटपैड लॉन्च क्यों करना चाहते हैं? –

+0

> सिस्टम ("गिट संस्करण") चेतावनी संदेश: चल रहे कमांड 'गिट संस्करण' की स्थिति 127 – Powerfool

उत्तर

4

चेतावनी मैं अपने टिप्पणी में उल्लेख किया है कॉलिंग, आर प्रलेखन पता चलता है कि Windows में system() समारोह एक लांच नहीं कर रहा है अलग खोल (यदि आवश्यक हो)। यही कारण है कि कमांड लाइन system() के साथ चलाने के कमांड, लेकिन नोटपैड है, जो एक अलग विंडो की जरूरत है, चलती है नहीं:

documentation से system() के लिए:

सबसे महत्वपूर्ण अंतर यह है कि एक यूनिक्स पर एक जैसा सिस्टम एक खोल खोलता है जो तब कमांड चलाता है। विंडोज़ पर कमांड सीधे चलाया जाता है - एक इंटरफ़ेस के लिए खोल का उपयोग करें जो शेल (डिफ़ॉल्ट रूप से विंडोज शैल cmd.exe के माध्यम से कमांड चलाता है, जिसमें पॉज़िक्स शैल से कई अंतर होते हैं)।

12

अनुकूल @ DavidTseng के जवाब (यह वोट दें करने के लिए पर्याप्त प्रतिष्ठा नहीं होने के लिए खेद है) ...

system("cmd.exe", input = "notepad") 

Windows में मेरे लिए काम किया।

संबंधित मुद्दे