आर

2012-06-13 7 views
54

में डेटा इनपुट करने के लिए एक प्रॉम्प्ट/उत्तर प्रणाली बनाना, मैंने उन लोगों द्वारा उपयोग के लिए कुछ आर कोड बनाया है जो आर के कुछ भी नहीं जानते (हालांकि मैं खुद को बहुत हरा हूं)। मैं लोगों को प्रारंभिक डेटा में आर कंसोल (मिश्रित परिणामों के साथ) में पेस्ट कर रहा हूं, और मैं लोगों के डेटा में प्रवेश करने के लिए एक और अधिक उपयोगकर्ता के अनुकूल तरीके स्थापित करने की उम्मीद कर रहा था।आर

आदर्श रूप से कोई कंसोल पर बैठ सकता है, कमांड टाइप कर सकता है, और डेटा दर्ज करने के तरीके पर विशिष्ट प्रश्नों के साथ संकेत दिया जा सकता है।

उदाहरण के लिए, एक व्यक्ति भार अप r और एक शीघ्र देखता है:

What is x value? 

में व्यक्ति प्रकार:

2 

अगला शीघ्र:

What is y value? 

व्यक्ति प्रकार में:

3 

अगला शीघ्र:

4,3,2,1 

अगला शीघ्र:

What are T values? 

में व्यक्ति प्रकार

क्या वी मान रहे हैं?

व्यक्ति प्रकार में:

4,5,6,9 

और इन 4 नव परिभाषित चर के साथ (पहला, दूसरा, टी, वी) आर का अगला कदम पूर्व लिखित कोड को चलाने के लिए है

X+Y 
V+T 

और कंसोल में जवाब पॉप अप

5 
8 8 8 10 

और हर किसी को खुश है

मेरी माफ़ी है क्योंकि यह एक पुन: उत्पादित कोड प्रकार का सवाल नहीं है, लेकिन मुझे यकीन नहीं है कि आर के बारे में सवाल पूछने के विरोध में आर पूछने के तरीके से संपर्क कैसे करें!

उत्तर

47

चूंकि इसे केवल इंटरैक्टिव कोड के रूप में उपयोग किया जाना चाहिए, readline() आपके लिए काम कर सकता है। मैंने कोई त्रुटि जांच नहीं जोड़ा है, लेकिन आप शायद उचित इनपुट सुनिश्चित करने के लिए उचित मात्रा में करना चाहते हैं। यहाँ मूल अवधारणा हालांकि बताया गया है:

fun <- function(){ 
    x <- readline("What is the value of x?") 
    y <- readline("What is the value of y?") 
    t <- readline("What are the T values?") 
    v <- readline("What are the V values?") 

    x <- as.numeric(unlist(strsplit(x, ","))) 
    y <- as.numeric(unlist(strsplit(y, ","))) 
    t <- as.numeric(unlist(strsplit(t, ","))) 
    v <- as.numeric(unlist(strsplit(v, ","))) 

    out1 <- x + y 
    out2 <- t + v 

    return(list(out1, out2)) 

} 
+2

कोड महान काम करता है:

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

+1

यह अच्छा है। मैं समझने की कोशिश कर रहा हूं कि अनलिस्ट और स्ट्रस्प्लिट फ़ंक्शंस के साथ क्या हो रहा है। आर यहाँ क्या कर रहा है? – Seanosapien

+1

@ सेनोसापियन इनपुट उदाहरण से कॉमा को स्ट्रिप करने के लिए आवश्यक है यदि उपयोगकर्ता मूल उदाहरण में "4,3,2,1" में टाइप करता है। यदि इनपुट उस प्रारूप में नहीं है तो यह आवश्यक नहीं है। –

7

के बाद से यह सवाल मरे हुओं में से वापस लाया गया, यह शायद एक अद्यतन जवाब लिख रही।

यदि इस मामले में एक जीयूआई सहायक है, तो चमकदार पैकेज अब RStudio के साथ अच्छी तरह से एकीकृत है, और इसे चमकदार एप्लिकेशन के रूप में कार्यान्वित करना बहुत आसान होगा। वेबसाइट http://shiny.rstudio.com में अधिक जानकारी है, उदाहरण और दस्तावेज़ीकरण सहित।

5

यह इस विशेष मामले के लिए अधिक हो सकता है, लेकिन swirl पैकेज इंटरैक्टिव रूप से शुरुआती लोगों को आर शुरू करने के लिए अच्छा है।

ज़ुल्फ़ आर प्रोग्रामिंग भाषा है जो एक इंटरैक्टिव सीखने के माहौल में बदल जाता है आर कंसोल के लिए एक सॉफ्टवेयर पैकेज है। उपयोगकर्ताओं को तत्काल प्रतिक्रिया प्राप्त होती है क्योंकि उन्हें डेटा विज्ञान और आर प्रोग्रामिंग में स्वयं-पाठित पाठों के माध्यम से निर्देशित किया जाता है।

सामग्री उत्पन्न करने के निर्देश यहां पाए जा सकते हैं: http://swirlstats.com/instructors.html

21

utils से एक साधारण टेक्स्ट बेस मेनू इंटरफ़ेस और प्रॉम्प्ट के लिए भी देखें, जिसका उपयोग devtools में भी किया जाता है।

> menu(c("Yes", "No"), title="Do you want this?") 
Do you want this? 

1: Yes 
2: No 

Selection: