2010-10-14 19 views
15

से चलाने के लिए स्क्रिप्ट में इंटरैक्टिव इनपुट को शामिल करने के लिए मैं एक इंटरैक्टिव आर स्क्रिप्ट लिखने की कोशिश कर रहा हूं।कमांड लाइन

try.R: उदाहरण के लिए:

print("Entr some numbers. >",quote=F) 
a = scan(what=double(0)) 
print a 
q() 

अब, अगर मैं के रूप में

$ R --no-save < try.R 

कमांड लाइन पर चला यह try.R से stdin मिल देने के लिए निम्न की कोशिश करता है त्रुटि:

> print("Entr some numbers. >",quote=F) 
[1] Entr some numbers. > 
> a = scan(what=double(0)) 
1: print a 
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
    scan() expected 'a real', got 'print' 
Execution halted 

मैंने कुछ अन्य तरीकों की कोशिश की लेकिन वे सभी त्रुटियां देते हैं। उदाहरण के लिए:

$ R CMD BATCH try.R 
$ Rscript try.R 

तो मैं कैसे एक अनुसंधान स्क्रिप्ट * nix खोल कमांड लाइन से काम करता है, और उपयोगकर्ता से इंटरैक्टिव इनपुट में ले जा सकते हैं लिख सकता हूँ?

उत्तर

19

इस प्रयास करें:

cat("What's your name? ") 
x <- readLines(file("stdin"),1) 
print(x) 

उम्मीद है कि कि किसी भिन्न रूप से आप के लिए काम करता है।

+2

IIRC सिर्फ 'readLines (n = 1)' भी करना चाहिए। –

+0

@ डर्क एडडेलबुटेल: यह काम नहीं करता प्रतीत होता है। – highBandWidth

+1

मेरा बुरा, क्षमा करें। मैंने फ़ाइल रीडलाइन के बिना 'रीडलाइन()' का उपयोग किया था, एक ही समय में stdin को डिफॉल्ट करना - आज सुबह के रूप में आर-सहायता देखें। –

5

क्या RStudio 0.98.945 और आर संस्करण 3.1.1 के साथ Windows पर मेरे लिए काम किया था:

cat("What's your name? ") 
    x <- readLines(con=stdin(),1) 
    print(x)