आर कोड और आउटपुट को व्यवस्थित करने के लिए कुशल तरीके क्या हैं? [बन्द है]


23

मैं इनपुट की तलाश कर रहा हूं कि अन्य लोग अपने आर कोड और आउटपुट को कैसे व्यवस्थित करते हैं।

मेरा वर्तमान अभ्यास इस तरह से एक पाठ फ़ाइल में ब्लॉक में कोड लिखने के लिए है:

#=================================================
# 19 May 2011
date()
# Correlation analysis of variables in sed summary
load("/media/working/working_files/R_working/sed_OM_survey.RData")
# correlation between estimated surface and mean perc.OM in epi samples
cor.test(survey$mean.perc.OM[survey$Depth == "epi"], 
    survey$est.surf.OM[survey$Depth   == "epi"]))
#==================================================

मैं आउटपुट को किसी अन्य टेक्स्ट फ़ाइल में पेस्ट करता हूं, आमतौर पर कुछ एनोटेशन के साथ।

इस पद्धति की समस्याएं हैं:

  1. कोड और आउटपुट स्पष्ट रूप से तिथि के अलावा अन्य लिंक नहीं हैं।
  2. कोड और आउटपुट को कालानुक्रमिक रूप से व्यवस्थित किया जाता है और इस प्रकार इसे खोजना मुश्किल हो सकता है।

मैंने तब से एक स्वेग दस्तावेज़ बनाने पर विचार किया है क्योंकि मैं तब सामग्री की तालिका बना सकता था, लेकिन ऐसा लगता है कि यह जितना लाभ प्रदान करेगा उससे अधिक परेशानी हो सकती है।

मुझे अपने आर कोड और आउटपुट को व्यवस्थित करने के लिए आपके पास किसी भी प्रभावी दिनचर्या के बारे में बताएं जो विश्लेषण को खोजने और संपादित करने की अनुमति देगा।


2
बस कॉपी / पेस्ट से बचने के लिए, sink()या capture.output()आपके दोस्त हो सकते हैं। Hmisc , Sweave , या काढ़ा की तरह उपयोगिताओं की रिपोर्टिंग पर विचार करने के लायक हैं (आपकी बात 1)। वर्जनिंग सिस्टम ( rcs , svn , या git ) बिंदु 2 के साथ मदद कर सकता है
chl

@chl - सुझाव के लिए धन्यवाद। मैं के बारे में पता नहीं था sink()और capture.output()। एक दम बढ़िया।
DQdlM

1
आज निट भी है!
kjetil b halvorsen

जवाबों:


22

+1 और पहली कड़ी जो आप एक सूत्र में उपलब्ध कराते हैं :-)
chl

@chl धन्यवाद! मैं सोच रहा था कि क्या यह प्रश्न एक डुप्लिकेट है और इसे बंद कर दिया जाना चाहिए ...
बर्नड वीस

यह है, IMO। लेकिन जैसा कि कोई वोट नहीं है, मैं इसे बंद करने के लिए अनिच्छुक हूं। इसके अलावा, पुराना वाला अधिक सामान्य था, लेकिन अतीत में एक बहुत ही समान प्रश्न बंद कर दिया गया है। चलो इंतजार करें और देखें कि यह कैसे जाता है।
chl

सूची के लिए धन्यवाद! यह बहुत उपयोगी है। मुझे लगा कि मैं यह सवाल करने वाला पहला व्यक्ति नहीं था, लेकिन मुझे अपनी (स्पष्ट रूप से अयोग्य) प्रारंभिक खोज के साथ बहुत कुछ नहीं मिला।
DQdlM

6

मैं हर परियोजना या विश्लेषण के लिए 4 फाइलों में सब कुछ व्यवस्थित करता हूं। (1) 'कोड' जहां मैं आर कार्यों की पाठ फ़ाइलों को संग्रहीत करता हूं। (2) 'sql' जहाँ मैं अपने डेटा को इकट्ठा करने के लिए उपयोग किए जाने वाले प्रश्नों को रखता हूँ। (3) 'डेट' जहां मैं अपने कच्चे और संसाधित डेटा की प्रतियां (आमतौर पर सीएसवी) रखता हूं। (4) 'rpt' जहाँ मैं वितरित की गई रिपोर्ट को संग्रहीत करता हूँ।

मेरी सभी फ़ाइलों का नाम बहुत ही क्रियात्मक नामों जैसे कि 'analysis_of_network_abc_for_research_on_modified_buffer_19May2011' का उपयोग करके लिया गया है

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


2

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


1
स्वैव अद्भुत है। यह कुछ करने के लिए इस्तेमाल किया जा रहा है, लेकिन अगर आप पहले से ही TeX और R जानते हैं, तो यह स्पष्ट विकल्प है। यह आपको कभी भी टेबल कॉलम को संरेखित करने में समय व्यतीत करने की अनुमति नहीं देता है, जो अच्छा है।
रिचमीमोर्रोसियो

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

1) आप चाहें तो मध्यवर्ती फ़ाइलों को हटाने का विकल्प चुन सकते हैं; मैं Sweave.sh स्क्रिप्ट ( cran.r-project.org/contrib/extra/scripts/Sweave.sh ) का उपयोग करता हूं जो स्वचालित रूप से ऐसा करता है; हालांकि आसानी से बंद किया जा सकता है। यदि आप ऐसा करते हैं, तो सुनिश्चित करें कि आप जानते हैं कि संभावित आपदा को रोकने के लिए इसका उपयोग करने से पहले यह क्या हटाएगा। संक्षिप्त संस्करण यह है कि यदि कोई फ़ाइल आपके Rnw फ़ाइल के आधार का हिस्सा नहीं है तो आप ठीक हैं।
हारून - मोनिका

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

1
@ naught101: लंबे विश्लेषण के लिए, मैं इसे अलग से चलाता हूं और परिणाम .RDataको सहेजता हूं , आमतौर पर Sweave दस्तावेज़ द्वारा इनपुट के लिए फ़ाइल में। हालाँकि, वहाँ भी कई शानदार विकल्प हैं "कोडिंग" के लिए एक कोड चंक से परिणाम तो यह फिर से नहीं मिलता है।
हारून -

2

एकल .R कोड फ़ाइलों को संरचित करने के लिए, आप स्ट्रोडकोड का उपयोग कर सकते हैं , कोड विभाजकों को सम्मिलित करने के लिए बनाई गई एक RStudio ऐड-इन I (वैकल्पिक शीर्षक के साथ) और उनके आधार पर - कोड फ़ाइलों का सारांश प्राप्त करते हैं। मैं इसका उपयोग इस ब्लॉग पोस्ट में और अधिक विस्तार से बताता हूं ।

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