कंप्यूटर लैब में R सिखाने के लिए एक अच्छा तरीका क्या है?


15

वहाँ कई अच्छे सवाल और परिचयात्मक पुस्तकों पर जवाब के सेट किया गया या आर जैसे सीखने दृष्टिकोण है यहाँ और यहाँ । लेकिन मुझे थोड़ी अलग समस्या है - एक कंप्यूटर लैब में एक घंटे लंबे सत्र (या कई ऐसे सत्र) चलाने का सबसे अच्छा तरीका जो लोगों को आर में शुरू करेगा, जो उसके मूल दृष्टिकोण आदि से परिचित होगा।

मेरी वर्तमान योजना Verzani's SimpleR जैसे कुछ के परिचयात्मक अध्याय / एस के माध्यम से प्रभावी ढंग से काम करने के लिए होगी और फिर एक परिचित डेटासेट को पेश करेगी, लेकिन क्या कोई अन्य दृष्टिकोण है जो लोगों को उपयोगी मिला है? उदाहरण के लिए, क्या वास्तविक डेटा को सीधे लागू करना अच्छा है, या अधिक सार तरीके से मुद्दों को संबोधित करना अच्छा है? क्या मुझे पूरी तरह से स्क्वायर ब्रैकेट का उपयोग करना चाहिए, या जाली ग्राफिक्स के उदाहरणों से लोगों को उत्तेजित करना चाहिए?

मेरे लक्षित दर्शक आँकड़ों से परिचित हैं (हालाँकि विशेषज्ञ नहीं) और सक्षम SPSS उपयोगकर्ता; एसपीएसएस और इसी तरह की चीजों में आपको मैक्रो और स्क्रिप्टिंग से परे प्रोग्रामिंग भाषाओं से परिचित नहीं होना चाहिए।

किसी भी सुझाव या पाठ योजनाओं के संदर्भ की सराहना की जाएगी। हालाँकि, मैं आर-शुरू करने वाली ऑन-लाइन सामग्री की कई अच्छी सूचियों की नक़ल नहीं करना चाहता - निर्देशात्मक प्रश्न का सामना करने के लिए चेहरे पर सख्ती से संदर्भ।


शायद एक सामुदायिक विकि होना चाहिए, है ना?
पीटर एलिस

1
मुझे तो यह तरकीब अच्छी लग रही है। :)
मिशेल

1
इस सवाल का जवाब देने के लिए वास्तव में बहुत महत्वपूर्ण है कि आपका सेटअप क्या होगा। यदि आप एक है, तो एक "घंटे तक सत्र ... एक कंप्यूटर प्रयोगशाला में" वहाँ होने जा रहा है बहुत छोटे से आप कर सकते हैं और आप बहुत कुछ धर्मान्तरित होगा। यदि आपके पास "कई ऐसे" हैं और वे पहले से ही आँकड़े और बुनियादी प्रोग्रामिंग को अच्छी तरह से जानते हैं, तो आप पंप को ऐसे प्राइम कर सकते हैं कि वे अपने दम पर आगे बढ़ सकते हैं और कोशिश करने के बारे में उत्साही हो सकते हैं, लेकिन इस उत्तरार्द्ध के लिए एक अलग दृष्टिकोण की आवश्यकता होती है। कुछ आँकड़ों वाले लोगों के लिए और कोई प्रोग्रामिंग ज्ञान, एक सेमेस्टर लंबी पाठ्यक्रम आदर्श होगा।
गूँज - मोनिका

हम्म, अच्छा बिंदु @gung, ठीक है, सेटअप काफी विशिष्ट है। मैं उनका प्रबंधक हूं और इसलिए मैं उन्हें बता सकता हूं कि क्या करना है। हमारे पास सांख्यिकी कौशल पर एक पखवाड़े का लंबा सत्र है (हम में से कई प्रस्तुत करते हैं) जो कि अधिक व्यावहारिक है और हम वास्तविक डेटा के साथ मशीनों पर प्रयोगशाला में ऐसा करने के लिए सहमत हुए हैं। इसलिए मुझे यह निर्दिष्ट करना चाहिए कि वास्तविक आवश्यकता उन्हें एक या दो सत्रों में आर से परिचित कराने के लिए है कि जब हम फिटिंग प्रतिगमन मॉडल जैसी चीजों को करते हैं या बाद के सत्रों में नैदानिक ​​भूखंडों को देखते हैं तो हम मूल रूप से पूरी तरह से विचलित नहीं होंगे।
पीटर एलिस

2
@gung आपकी संपूर्ण टिप्पणी के लिए एक बड़ा +1। मैं आर को लंबे समय से पढ़ा रहा हूं और आखिरकार मैं इसी तरह के निष्कर्ष पर पहुंचा हूं: प्रोग्रामिंग या कमांड-लाइन प्रॉम्प्ट की कोई हल्की समझ रखने वाले लोगों को संभवतः आर से निपटने में कुछ कठिनाइयों का सामना करना पड़ेगा। यह तब और खराब हो जाता है जब हमें छात्रों से परिचित होना पड़ता है। कुछ घंटों में R का उपयोग करने वाले आंकड़े ...
chl

जवाबों:


7

मैं पूरी तरह से अलग दृष्टिकोण के लिए बहस करूँगा। मैंने आर ट्यूटोरियल देखा है जो दो अलग-अलग दृष्टिकोणों से सिखाया गया था: एक बिल्डिंग-ब्लॉक दृष्टिकोण, जिसमें उपयोगकर्ताओं को आर की मूलभूत अवधारणाओं से परिचित कराया जाता है, और एक झटका-और-विस्मयी दृष्टिकोण, जिसमें उपयोगकर्ताओं को आर की अद्भुत क्षमताओं को दिखाया जाता है लेकिन साथ छोड़ दिया जाता है कुछ भी करने की अपेक्षाकृत कम समझ। उत्तरार्द्ध निश्चित रूप से विद्यार्थियों के साथ अधिक दृढ़ता से प्रतिध्वनित होता है, लेकिन वास्तव में उत्पादन करने वाले उपयोगकर्ताओं पर न तो बहुत प्रभावी लगता है।

इसके बजाय, मैं एसपीएसएस में एक सामान्य और अपेक्षाकृत सरल कार्य करूंगा और इसे आर को परिवर्तित करने के माध्यम से चलूंगा, अपने हिस्से पर थोड़ा सा संकरी भोली के साथ - उदाहरण के लिए, शीआन के उत्कृष्ट सुझाव के ??बजाय कुछ वांछित कार्यों को देखने के लिए । स्मृति से सही कार्य को याद करते हुए। आपके newbies लगभग निश्चित रूप से मौजूदा प्रक्रियाओं को परिवर्तित कर रहे होंगे क्योंकि वे R सीखते हैं, उन्हें खरोंच से नहीं लिख रहे हैं - इसलिए उन्हें बिल्कुल नहीं दिखाएं कि आप उस पर कैसे जाएंगे?

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

होमवर्क के लिए, उन्हें अपनी सरल प्रक्रियाओं में से एक को परिवर्तित करने या एक डेटासेट लोड करने और खोज करने के लिए एक स्टैब प्राप्त करें, जिसके साथ वे बहुत परिचित हैं। उन्हें कुछ एक-एक समय यह पता लगाने के लिए दें कि चीजें गलत हो रही हैं, तो अगले सत्र में अधिक उदाहरण रूपांतरण के साथ उन्हें कवर करें। आपकी सूची की अवधारणाएं अनिवार्य रूप से सामने आएंगी (मेरी शर्त: कारक बनाम चरित्र वैक्टर, बनाम आवेदन के लिए) - और फिर आपके पास उन्हें कवर करने के लिए एक वास्तविक दुनिया प्रेरणा होगी। यदि वे ऊपर नहीं आते हैं ( attach), तो उन्हें वास्तव में अभी तक ज़रूरत नहीं है - अगर इसका मतलब है कि आपके newbies थोड़ा गैर-मुहावरेदार कोड जल्दी ( forइसके बजाय apply) पर लिखते हैं , तो मुझे नुकसान नहीं दिखता है।

इस तरह, आपके छात्र उसी तरह से प्रगति कर सकते हैं जिस तरह से विदेशी भाषा के छात्र करते हैं (या कम से कम, जिस तरह से मैंने किया था): सरल भावों का कच्चा अनुवाद अधिक जटिल अभिव्यक्तियों की इच्छा को प्रेरित करता है, जो व्याकरण की गहरी समझ की इच्छा का कारण बनता है , जो अंततः मुहावरेदार अभिव्यक्ति की ओर जाता है। बहुत जल्द "व्याकरण" पर न जाएं, और उन्हें उन चीजों को सिखाने के बारे में बहुत चिंता न करें, जिनके बारे में वे नहीं पूछ रहे हैं क्योंकि वे शायद इसे वैसे भी भूल जाएंगे। मुहावरेदार अभिव्यक्ति के बारे में कोमल संकेत महान ( forबनाम apply) हैं, लेकिन मुख्य बात यह है कि उन्हें आउटपुट उत्पन्न करना और अपने दम पर खोज करना है।


(+1) धन्यवाद, मैट, जो बहुत अच्छी सलाह की तरह लगता है। मुझे विशेष रूप से पिछले दो पैराग्राफ पसंद हैं।
chl

धन्यवाद मैट (और बाकी सब - सभी उत्कृष्ट सहायता)। मैं निश्चित रूप से उपयोग कर रहा हूँ ?? दृष्टिकोण, उन्हें लैब में फिर से बनाने के लिए और होमवर्क सामान्य कार्यों के रूप में वे अन्य सॉफ़्टवेयर (SPSS और हार्मोनी, जो मूल रूप से एक क्रॉस-टैब पैकेज है) के साथ करते हैं। मुझे अभी भी कुछ उचित निर्देशन की आवश्यकता है बस उन्हें बात खोलने और यह जानने के लिए कि कहां से शुरू करना है (और मैंने अपने पाठ को उसी के अनुसार 1 योजना में संशोधित किया है) लेकिन मुझे लगता है कि लैब के बाहर सेल्फ-लर्निंग को प्रेरित करना निश्चित रूप से जाने का तरीका है।
पीटर एलिस

7

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

के अंत में पहले सत्र आप को सक्षम होना चाहिए:

मूल बातें

  • सीधी गणना करने के लिए इंटरफ़ेस का उपयोग करें (कैलकुलेटर के रूप में R का उपयोग करें)
  • स्क्रिप्ट विंडो को प्रारंभ, सहेजें और लोड करें और इसे कुशलता से उपयोग करें
  • अपने कार्यक्षेत्र में ऑब्जेक्ट बनाएं और निकालें
  • देखें कि कौन सा फ़ोल्डर आपका काम करने वाला फ़ोल्डर है
  • यह समझें कि P: / R / yourid फ़ोल्डर कैसे काम करता है और बाहर निकलने पर कार्यक्षेत्र की बचत क्या करता है
  • XXX (हमारे आमतौर पर उपयोग किए जाने वाले डेटा) सहित कार्यक्षेत्र की एक छवि लोड करें
  • स्मृति में वस्तुओं को सूचीबद्ध करें
  • डेटा फ़्रेम में कॉलम (चर) के नाम सूचीबद्ध करें
  • स्क्रीन पर ऑब्जेक्ट प्रिंट करें
  • डेटा फ्रेम संलग्न करें और अलग करें
  • जानते हैं कि इसका क्या अर्थ है: ऑब्जेक्ट, फ़ंक्शन, तर्क (एक फ़ंक्शन के लिए), कार्यक्षेत्र, वेक्टर, डेटा फ़्रेम, मैट्रिक्स, न्यूमेरिक, फ़ैक्टर
  • एक समारोह में मदद के लिए देखने के लिए कैसे पता है
  • उपयोग ?? प्रासंगिक कार्यों की एक सूची खोजने के लिए
  • अधिक संसाधनों के लिए वेब और हमारी स्थानीय पुस्तकों और LAN पर कहां जाएं
  • विशिष्ट सांख्यिकीय तकनीकों पर प्रयोगशाला सत्रों में भाग लेने के लिए पर्याप्त आर बेसिक्स को समझें

डेटा मेनिपुलेशन

  • ऑपरेटर का उपयोग करके संख्याओं का एक वेक्टर बनाएं
  • एक चर के लिए मायने रखता है की एक तालिका करो
  • दो चर के लिए मायने रखता है
  • आगे हेरफेर के लिए एक नई वस्तु (उदाहरण के लिए ऊपर की तालिकाओं में से एक) बनाएं
  • एक मैट्रिक्स या तालिका को स्थानांतरित करें
  • Tapply () का उपयोग करते हुए एक कारक द्वारा एक सतत चर के साधनों का वेक्टर बनाएं
  • कई वैक्टर एक साथ cbind () या data.frame () का उपयोग कर बांधें
  • [] का उपयोग करके एक मैट्रिक्स का सबसेट बनाएँ
  • एक साधारण परिवर्तन बनाएँ जैसे लघुगणक या वर्गमूल

आंकड़े

  • दो निरंतर चर के सहसंबंध की गणना करें

ग्राफिक्स

  • एक सतत चर का हिस्टोग्राम बनाएं
  • एक ग्राफिक्स विंडो बनाएं और इसे 2 या 4 भागों में विभाजित करें
  • एक सतत चर की घनत्व लाइन साजिश बनाएँ
  • दो निरंतर चर का एक स्कैल्पल बनाएं
  • स्कैटलपॉट में एक सीधी रेखा जोड़ें (ऊर्ध्वाधर, क्षैतिज या एब)
  • कुल्हाड़ियों और शीर्षकों के लिए लेबल बनाएं

तीन सत्रों के अंत में और कई अभ्यासों को करते हुए आपको निम्न कार्य करने में भी सक्षम होना चाहिए:

मूल बातें

  • SPSS या .csv प्रारूप में डेटा आयात करें
  • अपने कार्यक्षेत्र की सभी वस्तुओं को नए सिरे से शुरू करने के लिए निकालें
  • पैकेजों की एक लाइब्रेरी का उपयोग करें
  • एक कार्यक्षेत्र छवि सहेजें और बुनियादी सिद्धांतों आर और मेमोरी को समझें
  • यादृच्छिक चर उत्पन्न करें
  • वेक्टर बनाने के लिए c () का उपयोग करें
  • नई विधियों और तकनीकों को सीखने के लिए कहाँ जाना है, इसके लिए एक अच्छा अनुभव रखें

डेटा मेनिपुलेशन

  • वास्तविक डेटा सेट पर समुच्चय () का उपयोग करें जैसे आगंतुक महीने और देश के आधार पर संख्याएँ
  • % ऑपरेटरों में ==, =! और%; तार्किक वैक्टर; और उनका उपयोग डेटा को कम करने के लिए
  • ifelse () और इसका उपयोग नए चर बनाने के लिए
  • अधिकतम, न्यूनतम और इसी तरह के कार्य और वे वैक्टर के साथ कैसे काम करते हैं
  • कई परिणामों को संग्रहीत करने के लिए एक वेक्टर या मैट्रिक्स बनाएं
  • एक समान फ़ंक्शन को कई बार दोहराने के लिए एक लूप का उपयोग करें
  • मैट्रिक्स के प्रत्येक कॉलम या रो पर फ़ंक्शन को लागू करने के लिए लागू करें () का उपयोग करें
  • एक आदेशित कारक बनाएँ
  • किसी संख्यात्मक चर को फिर से बनाने के लिए कट () का उपयोग करें

आंकड़े

  • एक आकस्मिक तालिका के लिए ची वर्ग परीक्षण
  • सहसंबंधों का मजबूत संस्करण
  • परिणामों को देखने के लिए एक वस्तु और परिणाम () (,), सारांश () और साजिश () का उपयोग करके दो निरंतर चर के लिए एक रैखिक मॉडल को फिट करें
  • मॉडल के बारे में पर्याप्त समझें और वे अपने कौशल को मॉडल प्रकार की एक विस्तृत श्रृंखला में लागू करने के लिए तैयार होने के लिए आर में कैसे काम करते हैं
  • Cor (), माध्य (), या var () जैसे मूल फ़ंक्शन पर बूटस्ट्रैप करने के लिए बूट () का उपयोग करें
  • वास्तविक जीवन डेटा सेट पर नमूना () का उपयोग करें

ग्राफिक्स

  • एक कारक के विभिन्न स्तरों को दिए गए एक सतत चर की एक जाली घनत्व रेखा रेखा बनाएं
  • qqnorm
  • एक कारक के विभिन्न स्तरों को दिखाते हुए अलग-अलग रंग और चरित्र बिंदुओं के साथ एक तितर बितर साजिश का निर्माण; एक मौजूदा स्कैटर प्लॉट में अंक या रेखाएँ जोड़ें
  • एक किंवदंती जोड़ें
  • dotcharts
  • errbar ()
  • एक पृष्ठ पर कई चार्ट बनाने के लिए लूप का उपयोग करना

2
आपके सेटअप को देखते हुए, यह उचित लगता है, लेकिन एक घंटे में newbies के साथ कवर करने के लिए बहुत कुछ है। मैं आत्मनिर्भरता के निर्माण के लिए उनके लिए उपलब्ध संसाधनों पर लगातार जोर दूंगा। विशेष रूप से, स्थापना और सहायता फ़ाइलों के उपयोग के साथ आने वाले आर मैनुअल पर जाएं। उदाहरण के लिए, सहसंबंध शुरू करने के लिए ?? सहसंबंध के साथ शुरू होता है, सूची को खोजने के लिए दिखाएं, फिर; कोर और दिखाएं कि मदद कैसे पढ़ें और समझें; डॉक्यूमेंट से cor, hist आदि सिखाएं । कोई फर्क नहीं पड़ता कि वे कितने स्मार्ट हैं, बस एक घंटे की सीमा है - उन्हें स्वयं द्वारा जानकारी और समस्या निवारण जानने की आवश्यकता है ।
गंग - मोनिका

1
मुझे लगता है कि मैं आपसे लगभग 10 मिनट की पैदल दूरी पर काम कर रहा हूं, इसलिए यदि आप कॉफी पर कुछ भी करना चाहते हैं तो मुझे एक चिल्लाना दें। :)
मिशेल

मुझे नहीं लगता कि यह मुख्य रूप से क्या है , यह कैसे है । यह विद्यार्थियों को आंशिक रूप से सामान सीखने के लिए और हाथ पर एक व्यापक धोखा पत्र प्राप्त करने के लिए है + कुछ घरेलू कार्य।
ओन्ड्रेज

@ मिचेल
पीटर एलिस

4
यह एक आश्चर्यजनक महत्वाकांक्षी सूची है! मैं आपको तीन घंटे में इस सब को कवर करने की कल्पना नहीं कर सकता - मुझे नहीं लगता कि मैं तीन घंटे में इस सब को कवर करने के लिए शब्दों को कहने में सक्षम हूं, बहुत कम जवाब वाले प्रश्न। ऐसी कुछ अवधारणाएँ हैं जिन्हें मैं पूरी तरह से छोड़ दूंगा: कार्यक्षेत्र (मैं उनका उपयोग नहीं करना चाहता हूं - स्क्रिप्ट से सब कुछ पुन: प्राप्त करना कोड को और अधिक मजबूत बनाता है), संलग्न करें (विशेष रूप से नए उपयोगकर्ताओं के लिए, जो पर्यावरण को नहीं समझते हैं), ट्रांसपोज़िंग (तुच्छ) देखने के लिए जब आपको इसकी आवश्यकता हो), और cbind (मैं लगभग इसका कभी उपयोग नहीं करता)।
मैट पार्कर

2

पीटर की सूची में मैं जोड़ूंगा:

  1. सबसेट डेटा फ़्रेम: अवलोकन द्वारा सबसेट (जैसे 3 से ऊपर की सभी प्रतिक्रियाएँ), चर द्वारा सबसेट।
  2. ifelse स्टेटमेंट का उपयोग करें (यह मेरे लिए एक बहुत बड़ा सीखने की अवस्था थी, मैं if स्टेटमेंट के प्रकार का उपयोग करने की कोशिश करता रहा), विशेष रूप से नेस्टेड इफिस।
  3. कुल कमांड का उपयोग करके डेटा को एक छोटे डेटा फ्रेम में संक्षेपित करें।
  4. == ऑपरेटर का उपयोग करना सीखना।
  5. का उपयोग <- के बजाय =
  6. चर नाम बदलें
  7. एसएएस में बेसिक वैरिफिकेशन ट्रैप, जैसे कि मैक्स (ए, बी) अधिकतम नहीं करता है (ए, बी) आर में करता है, अगर ए एक डेटा फ्रेम में एक चर है और बी एक एकल मूल्य है। एसएएस कोड (और शायद एसपीएसएस कोड) के बराबर करने के लिए, मैं एक ifelse स्टेटमेंट का उपयोग करता हूं।
  8. अटैचमेंट के बजाय उपयोग करें। :)

अधिक विचार: वे शायद COMPUTEबहुत अधिक उपयोग करते हैं SPSS, इसलिए यह कवर करना कि Rअच्छा कैसे होगा। इसके अलावा, RECODEआर में चर कैसे करें । जब मैं उपयोग कर रहा था तो SPSSमुझे लगता है कि मेरे अधिकांश "गैर विश्लेषण" कार्य उन दो आदेशों का उपयोग कर रहे थे।


1
Pmax पर एक नजर ...
एल्विस

@ शीआन, अब वहाँ जा रहे हैं एक तिरछी नज़र (या एक प्रहार!) आह, मैंने क्लिक नहीं किया था कि आप थे, मैं आपके ब्लॉग पर आर-ब्लॉगर लिंक के माध्यम से एक-दो बार गया था। :)
मिशेल

2
कवर करते समय ifelseउन्हें यह दिखाने के लिए सुनिश्चित करें कि यह कैसे काम करता है और इसके प्रलेखन में चेतावनी का क्या मतलब है। एक बार जब आप इसके बारे में सोचते हैं तो यह तार्किक रूप से काम करता है, लेकिन मैंने ifelseचर प्रकारों को "बदलने" के बारे में कुल भ्रम देखा है और बहुत समय खो दिया है।
वेन

2
@ शीआन: R मदद कहती है, "ऑपरेटर = को केवल शीर्ष स्तर पर अनुमति दी जाती है (उदाहरण के लिए, कमांड प्रॉम्प्ट पर टाइप की गई पूर्ण अभिव्यक्ति में) या अभिव्यक्तियों की एक ब्रेसलेट सूची में सबएक्सप्रेस में से एक के रूप में।" मैं आपके ब्लॉग में उल्लिखित स्थितियों के अलावा अन्य स्थितियों के बारे में सोच सकता हूं, हालांकि अभी तक केवल सी-ईश चीजें जैसे: a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; bजहां सबस्क्रिप्टिंग समान परिणाम देती है, लेकिन bअलग है (पहली बार नहीं बदला गया, दूसरी बार बदला गया)। =काम होना कभी नहीं किया गया था और आर अधिक स्वादिष्ट बनाने के लिए प्रयास करने के लिए बदल दिया गया है कभी नहीं करना चाहिए था। यह मत करो।
वेन

1
@Elvis +1000 आपके लिए इंटर्नेट है, जो pmaxबेहतरीन काम करता है।
मिशेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.