2013-03-08 13 views
10

मैं knitr पर बहुत नया हूं, लेकिन मैंने एक ऐसी स्क्रिप्ट लिखी है जो एक काउंटी के लिए रिपोर्ट उत्पन्न करती है। पहले कोड खंड में पहली पंक्तियों में से एक display_county <- "King" है, और यह किंग काउंटी के बारे में अच्छी तरह से सभी चीजों को बनाने के लिए डेटाबेस से पूछताछ करता है। अब मैं अपने राज्य में हर काउंटी के लिए रिपोर्ट बनाना चाहता हूं। स्क्रिप्ट में एकमात्र पंक्ति जिसे बदलने की जरूरत है display_county की परिभाषा है।बुनाई रिपोर्ट

मुझे पता है कि brew पैकेज इस तरह की सामग्री के लिए सेट अप हैं, और मुझे पता है कि brew और knitr के बीच ओवरलैप है, लेकिन मुझे नहीं पता कि मुझे क्या उपयोग करना चाहिए।

This answer using Brew and Sweave मामूली संशोधन के साथ काम करेगा, लेकिन क्या knitrbrew बाईपास करने के लिए एक अच्छा knitr तरीका है?

+0

वहाँ किसी कारण है आप काउंटी का वेक्टर नहीं बना सकते हैं और फिर इसे फिर से चालू कर सकते हैं? –

+0

@ ब्रायनहंसन बिल्कुल नहीं, और यही वह है जो मैंने 'ब्रू' का उपयोग रामनाथ के लिंक किए गए उत्तर में किया था। लेकिन यह * लगता है * कुछ ऐसा है जो मुझे सिर्फ 'बुनाई' में करने में सक्षम होना चाहिए। – Gregor

+0

क्या आपने इसे 'बुनाई' में आजमाया है? यदि यह इंटरैक्टिव या स्क्रिप्ट के माध्यम से 'आर' में काम करता है, तो मुझे नहीं लगता कि आप इसे 'बुनाई' के साथ क्यों नहीं कर सकते हैं। मैंने कभी 'ब्रू' का उपयोग नहीं किया है, लेकिन 'knitr' और' sweave' बड़े पैमाने पर उपयोग किया है, और मुझे लगता है कि यह संभव होना चाहिए। –

उत्तर

5

यदि मैं सही ढंग से समझता हूं, तो आप प्रत्येक काउंटी के लिए एक ही आरएनडब्ल्यू फ़ाइल का उपयोग करने जा रहे हैं, इसलिए प्रत्येक काउंटी के लिए केवल display_county परिवर्तनीय होगा। मैं पहले काउंटी के सभी नाम प्राप्त करने के लिए डेटाबेस को कॉल कर दूंगा और उन्हें वेक्टर में स्टोर करूँगा (कहें ... myCounties)। उसके बाद, अपनी रिपोर्ट एक स्क्रिप्ट युक्त निम्नलिखित के साथ उत्पन्न किया जा सकता:

for(dc in myCounties) { 
    knit2pdf(input='county_report.Rnw', output=paste0(dc, '_county_report.pdf')) 
} 

अधिक प्रभावी ढंग से त्रुटियों को संभालने के लिए, आप भी एक tryCatch बयान पर knit2pdf कॉल लपेट कर सकते हैं:

for(dc in myCounties) { 
    tryCatch(knit2pdf(input='county_report.Rnw', output=paste0(dc, '_county_report.pdf'))) 
} 
+1

'सी' लूप की अनुक्रमणिका के लिए एक बहुत ही भयानक नाम है क्योंकि यह आर में भी एक बहुत ही महत्वपूर्ण कार्य है। आप इंडेक्स का नाम बदलने पर विचार कर सकते हैं। – Dason

+0

सच ... संपादित करेंगे। – JAponte

संबंधित मुद्दे