सांख्यिकीय विश्लेषण और रिपोर्ट लेखन के लिए वर्कफ़्लो


185

क्या किसी को कस्टम रिपोर्ट लेखन से संबंधित डेटा विश्लेषण के लिए वर्कफ़्लोज़ पर कोई ज्ञान है? उपयोग-मामला मूल रूप से यह है:

  1. ग्राहक एक रिपोर्ट प्रस्तुत करता है जो डेटा विश्लेषण का उपयोग करता है, उदाहरण के लिए जनसंख्या का अनुमान और जल जिले के लिए संबंधित नक्शे।

  2. विश्लेषक कुछ डेटा डाउनलोड करता है, डेटा को मंगाता है और परिणाम बचाता है (उदाहरण के लिए प्रति यूनिट जनसंख्या के लिए एक स्तंभ जोड़ना, या जिला सीमाओं के आधार पर डेटा को कम करना)।

  3. विश्लेषक (2) में बनाए गए डेटा का विश्लेषण करता है, अपने लक्ष्य के करीब जाता है, लेकिन देखता है कि अधिक डेटा की आवश्यकता है और इसलिए वापस (1) जाता है।

  4. तालिकाओं और ग्राफिक्स QA / QC से मिलने और क्लाइंट को संतुष्ट करने तक दोहराएं।

  5. टेबल और ग्राफिक्स को शामिल करते हुए रिपोर्ट लिखें।

  6. अगले साल, खुश ग्राहक वापस आता है और एक अद्यतन चाहता है। यह एक नए डाउनलोड द्वारा अपस्ट्रीम डेटा को अपडेट करने जैसा सरल होना चाहिए (जैसे पिछले वर्ष से बिल्डिंग परमिट प्राप्त करें), और "RECALCULATE" बटन दबाएं, जब तक कि विनिर्देशों में बदलाव न हो।

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

धन्यवाद!

पुनश्च:

नीचे एक मूल मेकफाइल है जो विभिन्न मध्यवर्ती डेटासेट (w / .RDataप्रत्यय) और स्क्रिप्ट ( .Rप्रत्यय) पर निर्भरता की जांच करता है । निर्भरता की जांच करने के लिए टाइमस्टैम्प का उपयोग करें, इसलिए यदि आप touch ss07por.csv, यह देखेंगे कि यह फ़ाइल उस पर निर्भर सभी फ़ाइलों / लक्ष्यों की तुलना में नई है, और उनके अनुसार अपडेट करने के लिए दिए गए स्क्रिप्ट को निष्पादित करें। यह अभी भी प्रगति पर एक काम है, जिसमें SQL डेटाबेस में डालने के लिए एक कदम और स्वाइप जैसी एक अस्थायी भाषा के लिए एक कदम शामिल है। ध्यान दें कि मेक अपने सिंटैक्स में टैब पर निर्भर करता है, इसलिए काटने और चिपकाने से पहले मैनुअल पढ़ें। आनंद लें और प्रतिक्रिया दें!

http://www.gnu.org/software/make/manual/html_node/index.html#Top

आर = / घर / wsprague / आर-2.9.2 / bin / आर

persondata.RData: ImportData.R ../../DATA/ss07por.csv फ़ंक्शंस
   $ R --slave -f ImportData.R

persondata.Munged.RData: MungeData.R persondata.RData फ़ंक्शंस
      $ आर - स्लेव -फ मुंनगाडाटा। आर

Report.txt: TabulateAndGraph.R persondata.Munged.RData Functions.R
      $ R --slave -f TabulateAndGraph.R> report.txt


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

नोटबुक्स , ओडबेक ड्राइवर , गिट और गिट लाइट्स सभी इस समस्या के लिए स्वर्ग भेजे गए हैं।
डेवआरजीपी

मैं यहाँ उल्लिखित सिद्धांतों के अनुसार परियोजना को स्थापित करने की जोरदार सलाह दूंगा । यहाँ ( github.com/ropensci/rrrpkg )। इतना-कॉल "अनुसंधान compedium" आकस्मिक धन जब प्रतिलिपि प्रस्तुत करने योग्य डेटा विज्ञान कर रही है
Kresten

जवाबों:


195

मैं आमतौर पर अपनी परियोजनाओं को 4 टुकड़ों में तोड़ता हूं:

  1. load.R
  2. clean.R
  3. func.R
  4. do.R

load.R: आवश्यक सभी डेटा में लोडिंग का ध्यान रखता है। आमतौर पर यह एक छोटी फ़ाइल है, जो फ़ाइलों, URL और / या ODBC के डेटा में पढ़ रही है। इस बिंदु पर परियोजना के आधार पर मैं या तो कार्यक्षेत्र का उपयोग कर लिखूंगा save()या बस अगले चरण के लिए मेमोरी में चीजों को रखूंगा।

clean.R: यह वह जगह है जहाँ सभी बदसूरत सामान रहते हैं - लापता मूल्यों का ध्यान रखना, डेटा फ़्रेमों को मर्ज करना, आउटलेर से निपटना।

func.R: वास्तविक विश्लेषण करने के लिए आवश्यक सभी कार्यों को समाहित करता है। source()'इस फाइल को फंक्शन परिभाषाओं को लोड करने के अलावा कोई साइड इफेक्ट नहीं होना चाहिए। इसका मतलब है कि आप इस फ़ाइल को संशोधित कर सकते हैं और इसे दोहराए बिना वापस ले जा सकते हैं दोहराए जा सकते हैं चरण 1 और 2 जो कि बड़े डेटा सेटों को चलाने में लंबा समय ले सकता है।

do.R: विश्लेषण और प्रदर्शन चार्ट और तालिकाओं का निर्माण करने के लिए func.R में परिभाषित कार्यों को कॉल करता है।

इस सेट अप के लिए मुख्य प्रेरणा बड़े डेटा के साथ काम करने के लिए है जिससे आप हर बार जब आप बाद के एक कदम में बदलाव करते हैं तो डेटा को फिर से लोड नहीं करना पड़ेगा। इसके अलावा, इस तरह से अपने कोड को कंपार्टलाइज्ड रखने का मतलब है कि मैं एक लंबे समय से भूली हुई परियोजना पर वापस आ सकता हूं और जल्दी से लोड पढ़ सकता हूं। और वर्कआउट कर सकता हूं कि मुझे कौन सा डेटा अपडेट करने की जरूरत है, और फिर do.RR पर गौर करें कि क्या विश्लेषण किया गया था।


12
यह वास्तव में अच्छा वर्कफ़्लो है। मैं एक वर्कफ़्लो को डिजाइन करने के साथ संघर्ष किया है और जब मैं अपने आसपास के लोगों से पूछता हूं तो वे आम तौर पर जवाब देते हैं, "क्या? वर्कफ़्लो? हुह?" इसलिए मैं इसे लेता हूं वे इस बारे में ज्यादा नहीं सोचते। मैं रेचियन एलसीएफडी मॉडल अपनाने जा रहा हूं।
जेडी लॉन्ग

1
यह मेरे वर्कफ़्लो के बहुत करीब है, मेरे पास अक्सर एक आयात स्क्रिप्ट, विश्लेषण स्क्रिप्ट और रिपोर्टिंग स्क्रिप्ट है
kpierce8

4
एलसीएफडी: कम से कम फाउल्ड-अप डेटा
विलियम डोने

2
जेरोमी एंग्लिम द्वारा एक अच्छी प्रस्तुति वीडियो + स्लाइड है जो इस वर्कफ़्लो को यहाँ शामिल करती है vcasmo.com/video/drewconway/10362
डेविड लेबॉयर


94

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

हाल ही में मैंने स्क्रिप्ट को क्रमांकित करना शुरू किया है, इसलिए यह पूरी तरह से स्पष्ट है कि उन्हें किस क्रम में चलाया जाना चाहिए। (यदि मैं वास्तव में कल्पना कर रहा हूं तो मैं कभी-कभी इसे बनाऊंगा ताकि अन्वेषण स्क्रिप्ट सफाई स्क्रिप्ट को कॉल करेगी जो बदले में डाउनलोड स्क्रिप्ट को कॉल करती है, प्रत्येक न्यूनतम काम करना आवश्यक है - आमतौर पर आउटपुट फ़ाइलों की उपस्थिति के लिए जाँच करके file.exists। हालांकि, ज्यादातर बार यह ओवरकिल की तरह लगता है)।

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

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


मैंने ऊपर मेकफाइल्स के बारे में टिप्पणी की, लेकिन आप उन पर गौर करना चाहते हैं - यह पारंपरिक निर्भरता जाँच भाषा है। इसके अलावा - मैं ggplot2 सीखने की कोशिश करने जा रहा हूँ - बहुत अच्छा लग रहा है!
forkandwait

मुझे फ़ाइलों के बीच निर्भरता को निर्दिष्ट करने का एक तरीका पसंद है, लेकिन एम 4 सीखने के लिए एक बड़ी बारी है। काश आर
हैडली

2
निर्भरता के लिए, आप इसे R फ़ाइलों के भीतर भी कर सकते हैं। करने के बजाय source("blah.R"), जांचें कि क्या आवश्यक चर पहले मौजूद है if (!exists("foo")) { source("blah.R") }:। यदि वे पहले से ही चल रहे हैं निर्भरता फिर से चलाने से बचा जाता है।
naught101

17

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

मैं रिपोर्ट विकसित करने के लिए ग्रहण के लिए स्टेटेट प्लगइन का उपयोग करता हूं, और स्वेव एकीकृत है (ग्रहण लेटेक्स बनाने, आदि को पहचानता है)। विंडोज पर, मिकटेक्स का उपयोग करना आसान है

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

Sweave(file = "test.Rnw")

यहाँ बीमर दस्तावेज़ ही है:

% 
\documentclass[compress]{beamer}
\usepackage{Sweave}
\usetheme{PaloAlto} 
\begin{document}

\title{test report}
\author{john doe}
\date{September 3, 2009} 

\maketitle

\begin{frame}[fragile]\frametitle{Page 1: chart}

<<echo=FALSE,fig=TRUE,height=4, width=7>>=
library(quantmod)
getSymbols("PFE", from="2009-06-01")
chartSeries(PFE)
@

\end{frame}


\begin{frame}[fragile]\frametitle{Page 2: table}

<<echo=FALSE,results=tex>>=
library(xtable)
xtable(PFE[1:10,1:4], caption = "PFE")
@

\end{frame}

\end{document}

6
विश्वास मत करो कि जब तक आप एक साफ मशीन पर परीक्षण नहीं करते, तब तक एक स्वेव रिपोर्ट प्रतिलिपि प्रस्तुत करने योग्य है। बाहरी निर्भरता का अनुमान लगाना आसान है।
जॉन डी। कुक

16

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

प्रविष्टियाँ एक अच्छा वर्कफ़्लो का अनुसरण करती हैं, इसलिए यह अच्छी तरह से पढ़ने लायक है:

  1. डेटा तैयार करें।
  2. रिपोर्ट का खाका तैयार करें।
  3. रिपोर्ट तैयार करें।

वास्तव में पहले दो चरणों के पूरा होने के बाद रिपोर्ट तैयार करना बहुत सरल है:

library(tools)
library(brew)
brew("population.brew", "population.tex")
texi2dvi("population.tex", pdf = TRUE)

एक छोटी व्याकरणिक त्रुटि को ठीक करने में मैंने wordpress.com एड्रेसिंग को गड़बड़ कर दिया। तो सही लिंक है learnr.wordpress.com/2009/09/09/...
learnr

14

कस्टम रिपोर्ट बनाने के लिए, मैंने यहां सुझाए गए मौजूदा सुझावों में से कई को शामिल करना उपयोगी पाया है।

रिपोर्ट तैयार करना: रिपोर्ट तैयार करने की एक अच्छी रणनीति में स्वेव, मेक और आर का संयोजन शामिल है।

संपादक: अच्छे दस्तावेजों को तैयार करने के लिए अच्छे संपादकों में शामिल हैं:

  • स्टेटेट और ग्रहण
  • एमएसीएस और ईएसएस
  • विम और विम-आर
  • आर स्टूडियो

कोड संगठन: कोड संगठन के संदर्भ में, मुझे दो रणनीतियाँ उपयोगी लगती हैं:


7

मैं इस की रिपोर्ट बनाने वाले पक्ष के लिए स्वेव का उपयोग करता हूं , लेकिन मैं भी काढ़ा पैकेज के बारे में सुन रहा हूं - हालांकि मैंने अभी तक इस पर ध्यान नहीं दिया है।

अनिवार्य रूप से, मेरे पास कई सर्वेक्षण हैं जिनके लिए मैं सारांश आँकड़े प्रस्तुत करता हूं। एक ही सर्वेक्षण, एक ही रिपोर्ट हर बार। मैंने रिपोर्ट्स के लिए एक स्वेव टेम्पलेट बनाया (जिसमें थोड़ा काम लगता है)। लेकिन एक बार काम पूरा हो जाने के बाद, मेरे पास एक अलग आर स्क्रिप्ट है जो मुझे नए डेटा को इंगित करने देता है। मैं "गो" दबाता हूं, स्वेव कुछ स्कोर .ex फ़ाइलों को बाहर निकालता है, और मैं उन सभी को pdflatex करने के लिए थोड़ा पायथन स्क्रिप्ट चलाता हूं। मेरे पूर्ववर्ती ने इन रिपोर्टों पर हर साल 6 सप्ताह बिताए; मैं लगभग 3 दिन बिताता हूं (ज्यादातर सफाई डेटा पर; भागने के पात्र खतरनाक होते हैं)।

यह बहुत संभव है कि अब बेहतर दृष्टिकोण हैं, लेकिन अगर आप इस मार्ग पर जाने का निर्णय लेते हैं, तो मुझे बताएं - मैं अपने कुछ स्वैवे हैक्स लगाने का अर्थ कर रहा हूं, और यह करने के लिए पैंट में एक अच्छा किक होगा इसलिए।


इनमें से कुछ "स्वेव हैक्स" देखना पसंद करेंगे। यह मुझे सिरदर्द दे रहा है!
ब्रैंडन बर्टेल्सन

7

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

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


5

सहमत है कि Sweave जाने के लिए रास्ता है, LaTeX तालिकाओं के निर्माण के लिए xtable के साथ । हालाँकि, मैंने उनके साथ काम करने में बहुत अधिक समय नहीं बिताया है, हाल ही में जारी किया गया टिक्ज़डेविस पैकेज वास्तव में आशाजनक लग रहा है, खासकर जब pgfSweave के साथ युग्मित किया गया है (जो, जहां तक ​​मुझे पता है कि इस समय केवल rforge.net पर उपलब्ध है - वहाँ एक है वहां से r-forge के लिए लिंक, लेकिन यह फिलहाल मेरे लिए जवाब नहीं दे रहा है)।

दोनों के बीच, आपको पाठ और आंकड़े (फोंट, आदि) के बीच सुसंगत स्वरूपण मिलेगा। काढ़ा के साथ, ये रिपोर्ट निर्माण की पवित्र कब्र का निर्माण कर सकते हैं।


pgfSweave वर्तमान में "डेवलपमेंट लिम्बो" में है क्योंकि डेवलपर्स के पास नए टिक्डेविस को शामिल करने का समय नहीं है। अब हम सुझाव देते हैं कि सामान्य स्वेवे दस्तावेज़ों के भीतर से टिक्ज़डेविस का उपयोग करें - उपयोगकर्ता को डिवाइस को खोलने और बंद करने के लिए ज़िम्मेदारी लेनी होगी और परिणामी आउटपुट {} सहित।
शार्पी

@ शेर्पी: pgfSweave के विकास की स्थिति पर कोई अपडेट? यह बहुत अच्छा लग रहा है, लेकिन मेरे द्वारा आजमाई गई किसी भी प्रणाली पर काम नहीं करता है।
अरी बी। फ्रीडमैन

@ gsk3 अन्य डेवलपर pgfSweave को अपडेट रखने में बहुत सक्रिय रहा है और मैंने यह टिप्पणी पोस्ट करने के बाद बहुत काम किया है। विकास को ट्रैक करने के लिए github.com/cameronbracken/pgfSweave पर जाएं । यदि पैकेज आपके लिए काम नहीं कर रहा है, तो हम बग रिपोर्ट प्राप्त करना पसंद करेंगे ताकि हम इसे ठीक कर सकें।
शार्प

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


4

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


बनाने के लिए +1; हालाँकि, मैं स्वेव के साथ असंगत नहीं दिख रहा हूँ। जब मैं रिपोर्ट तैयार करता हूं, तो स्विवे (और अन्य चीजें) कॉल करें।
जेरोमे एंग्लीम

3

मैं आर स्टूडियो के साथ प्रोजेक्ट टेम्प्लेट का उपयोग करता हूं, वर्तमान में मेरा निम्नलिखित फ़ोल्डर हैं:

  • info : pdfs, पॉवरपॉइंट्स, डॉक्स ... जिनका उपयोग किसी स्क्रिप्ट द्वारा नहीं किया जाएगा
  • data input : डेटा जो मेरी स्क्रिप्ट द्वारा उपयोग किया जाएगा, लेकिन उनके द्वारा उत्पन्न नहीं किया जाएगा
  • data output : मेरी स्क्रिप्ट द्वारा आगे उपयोग के लिए उत्पन्न डेटा लेकिन एक उचित रिपोर्ट के रूप में नहीं।
  • reports : केवल फाइलें जो वास्तव में किसी और को दिखाई जाएंगी
  • R : सभी आर स्क्रिप्ट
  • SAS : क्योंकि मुझे कभी-कभी: '

मैं कस्टम कार्यों लिखा था तो मैं फोन कर सकते हैं smart_save(x,y)या smart_load(x)सहेज सकते हैं या लोड करने के लिए RDS filesकरने के लिए और से data outputफ़ोल्डर (चर नाम के साथ नामित किया गया फ़ाइलें) तो मैं से परेशान नहीं कर रहा हूँ pathsमेरी विश्लेषण के दौरान।

एक कस्टम फ़ंक्शन new_projectएक क्रमांकित प्रोजेक्ट फ़ोल्डर बनाता है, टेम्पलेट से सभी फ़ाइलों की प्रतिलिपि बनाता है, RProjफ़ाइल का नाम बदलता है और setwdकॉल को संपादित करता है, और नई परियोजना के लिए कार्यशील निर्देशिका सेट करता है।

सभी Rस्क्रिप्ट्स Rफ़ोल्डर में हैं, जिनका पालन करना संरचित है:


00_main.R
  • setwd
  • स्क्रिप्ट 1 से 5 तक

00_functions.R
  • सभी फ़ंक्शंस और केवल फ़ंक्शंस वहां जाते हैं, अगर वहाँ बहुत सारे हैं तो मैं इसे कई में अलग कर दूंगा, जैसे सभी नाम दिए गए हैं 00_functions_something.R, विशेष रूप से अगर मैं उनमें से कुछ से बाहर एक पैकेज बनाने की योजना बनाता हूं तो मैं उन्हें अलग रखूंगा

00_explore.R
  • स्क्रिप्ट का एक हिस्सा जहां मैं चीजों का परीक्षण कर रहा हूं या अपने डेटा की खोज कर रहा हूं
  • यह एकमात्र फाइल है जहां मुझे गड़बड़ करने की अनुमति है।

01_initialize.R
  • initialize_general.Rमेरे टेम्प्लेट फ़ोल्डर से अधिक सामान्य स्क्रिप्ट पर कॉल के साथ प्रीफ़िल्ड जो मेरे द्वारा उपयोग किए जाने वाले पैकेज और डेटा को हमेशा लोड करता है और मेरे कार्यक्षेत्र में मन नहीं लगता
  • भार 00_functions.R(पूर्वनिर्मित)
  • अतिरिक्त पुस्तकालयों को लोड करता है
  • वैश्विक चर सेट करें

02_load data.R
  • भार csv/txt xlsx RDS, हर प्रकार की फ़ाइल के लिए एक पूर्वनिर्मित टिप्पणी लाइन है
  • प्रदर्शित करता है कि कौन सी फाइलें कार्यक्षेत्र में बनाई गई हैं

03_pull data from DB.R
  • dbplyrDB से फ़िल्टर्ड और समूहीकृत तालिकाओं को लाने के लिए उपयोग करता है
  • कुछ प्रीफ़िल्ड टिप्पणियों ने कनेक्शन स्थापित करने और लाने के लिए लाइनें लिखीं।
  • क्लाइंट साइड ऑपरेशन को नंगे न्यूनतम तक रखें
  • इस स्क्रिप्ट के बाहर कोई सर्वर साइड ऑपरेशन नहीं है
  • प्रदर्शित करता है कि कार्यक्षेत्र में कौन सी फाइलें बनाई गई हैं
  • इन चरों को बचाता है ताकि वे तेजी से पुनः लोड हो सकें

एक बार जब मैं एक query_dbबूलियन को बंद कर देता हूं तो यह हो जाता है और RDSअगली बार से डेटा फिर से लोड हो जाएगा ।

ऐसा हो सकता है कि मुझे डेटा को DBs पर वापस करना होगा, अगर ऐसा है तो मैं अतिरिक्त कदम उठाऊंगा।


04_Build.R
  • डेटा तकरार, सारा मज़ा dplyr/ tidyrसामान वहाँ चला जाता है
  • प्रदर्शित करता है कि कौन सी फाइलें कार्यक्षेत्र में बनाई गई हैं
  • इन चरों को बचाओ

एक बार जब मैं एक buildबूलियन को बंद कर देता हूं तो यह हो जाता है और RDSअगली बार से डेटा फिर से लोड हो जाएगा ।


05_Analyse.R
  • संक्षेप में, मॉडल ...
  • रिपोर्ट excelऔर csvफाइलें

95_build ppt.R
  • पावरपॉइंट रिपोर्ट का उपयोग करने के लिए टेम्पलेट officer

96_prepare markdown.R
  • setwd
  • लोड डेटा
  • जरूरत पड़ने पर मार्कडाउन पैरामीटर सेट करें
  • render

97_prepare shiny.R
  • setwd
  • लोड डेटा
  • यदि आवश्यक हो तो चमकदार पैरामीटर सेट करें
  • runApp

98_Markdown report.Rmd
  • एक रिपोर्ट टेम्पलेट

99_Shiny report.Rmd
  • एक ऐप टेम्प्लेट

2

किसी सहकर्मी को त्वरित प्रारंभिक रिपोर्ट या ईमेल लिखने के लिए, मुझे पता चलता है कि एमएस वर्ड या ईमेल या विकी पेज में भूखंडों को कॉपी-पेस्ट करना बहुत ही कुशल हो सकता है - अक्सर एक बिटमैपेड स्क्रीनशॉट होता है (जैसे मैक, ऐप्पल -Shift- (Ctrl) -4)। मुझे लगता है कि यह एक अंडरटेक की गई तकनीक है।

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

बड़े वर्कफ़्लो मुद्दों पर, मुझे सफाई और विश्लेषण प्रवाह के लिए कोड / डेटा फ़ाइलों की गणना करने पर हेडली का जवाब पसंद है। मेरी सभी डेटा विश्लेषण परियोजनाओं में एक समान संरचना है।


2

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


0

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

  1. मेरा पैकेज बनाएँ
  2. भार
  3. स्वच्छ
  4. कार्यों
  5. करना

मेरा पैकेज बनाना: devtools :: create ('package_name')

लोड और क्लीन: मैं devtools :: use_data (object_name) का उपयोग करके पैकेज में परिणामी डेटा ऑब्जेक्ट्स को लोड करने, सफाई करने और संग्रहीत करने के लिए अपने पैकेज के डेटा-रॉ / सबफ़ोल्डर में स्क्रिप्ट बनाता हूं। फिर मैं पैकेज संकलित करता हूं। अब से, कॉलिंग लाइब्रेरी (पैकेज_नाम) इन डेटा को उपलब्ध कराती है (और वे आवश्यक होने तक लोड नहीं होते हैं)।

फ़ंक्शंस: मैंने अपने विश्लेषणों के लिए फ़ंक्शंस को अपने पैकेज के आर / सबफ़ोल्डर में डाल दिया, और केवल उन लोगों को निर्यात करें जिन्हें बाहर से बुलाया जाना चाहिए (और सहायक फ़ंक्शन नहीं, जो अदृश्य रह सकते हैं)।

do: मैं एक स्क्रिप्ट बनाता हूं जो मेरे पैकेज में संग्रहीत डेटा और फ़ंक्शन का उपयोग करता है। (यदि विश्लेषण केवल एक बार किए जाने की आवश्यकता है, तो मैं इस स्क्रिप्ट को डेटा-रॉ / सबफ़ोल्डर में डाल सकता हूं, इसे चला सकता हूं, और इसे आसानी से सुलभ बनाने के लिए पैकेज में परिणाम संग्रहीत कर सकता हूं।)

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