R Language
स्टैंडअलोन आर स्क्रिप्ट लिखकर विश्लेषण का मानकीकरण करें
खोज…
परिचय
यदि आप नियमित रूप से कई अलग-अलग डेटा फ़ाइलों के लिए एक आर विश्लेषण लागू करना चाहते हैं, या अन्य लोगों को एक दोहराए जाने वाले विश्लेषण विधि प्रदान करते हैं, तो एक निष्पादन योग्य आर स्क्रिप्ट ऐसा करने के लिए एक उपयोगकर्ता के अनुकूल तरीका है। आपके या आपके उपयोगकर्ता के पास R
को कॉल करने और R
अंदर अपनी स्क्रिप्ट को source(.)
या फ़ंक्शन कॉल के माध्यम से निष्पादित करने के बजाय, आपका उपयोगकर्ता केवल स्क्रिप्ट को कॉल कर सकता है जैसे कि वह एक प्रोग्राम था।
टिप्पणियों
मानक इनपुट- / आउटपुट चैनलों का प्रतिनिधित्व करने के लिए, फ़ंक्शन file("stdin")
(टर्मिनल या अन्य प्रोग्राम से पाइप के माध्यम से इनपुट), stdout()
(मानक आउटपुट) और stderr()
(मानक त्रुटि) का उपयोग करें। ध्यान दें कि जब फ़ंक्शन stdin()
, तो इसका उपयोग आर-टू को तैयार स्क्रिप्ट की आपूर्ति करते समय नहीं किया जा सकता है, क्योंकि यह उपयोगकर्ता इनपुट के बजाय उस स्क्रिप्ट की अगली पंक्तियों को पढ़ेगा।
स्टैंडअलोन आर कार्यक्रम की मूल संरचना और इसे कैसे कॉल किया जाए
पहली स्टैंडअलोन आर स्क्रिप्ट
स्टैंडअलोन आर लिपियों कार्यक्रम द्वारा निष्पादित नहीं कर रहे हैं R
( R.exe
Windows के तहत), लेकिन नाम के एक कार्यक्रम से Rscript
( Rscript.exe
) है, जो अपने में शामिल है R
डिफ़ॉल्ट रूप से स्थापना।
इस तथ्य को इंगित करने के लिए, स्टैंडअलोन आर स्क्रिप्ट एक विशेष लाइन से शुरू होती है जिसे शेबंग रेखा कहा जाता है, जो निम्नलिखित सामग्री रखती है: #!/usr/bin/env Rscript
। विंडोज के तहत, एक अतिरिक्त उपाय की आवश्यकता होती है, जिसे बाद में अलग किया जाता है।
निम्नलिखित सरल स्टैंडअलोन आर स्क्रिप्ट फ़ाइल नाम "hist.png" के तहत एक हिस्टोग्राम को उन नंबरों से बचाता है जो इसे इनपुट के रूप में प्राप्त करता है:
#!/usr/bin/env Rscript
# User message (\n = end the line)
cat("Input numbers, separated by space:\n")
# Read user input as one string (n=1 -> Read only one line)
input <- readLines(file('stdin'), n=1)
# Split the string at each space (\\s == any space)
input <- strsplit(input, "\\s")[[1]]
# convert the obtained vector of strings to numbers
input <- as.numeric(input)
# Open the output picture file
png("hist.png",width=400, height=300)
# Draw the histogram
hist(input)
# Close the output file
dev.off()
आप एक स्वसंपूर्ण आर स्क्रिप्ट के कई प्रमुख तत्व देख सकते हैं। पहली पंक्ति में, आप शेबंग रेखा देखते हैं। उसके बाद, उपयोगकर्ता को संदेश प्रिंट करने के लिए cat("....\n")
का उपयोग किया जाता है। जब भी आप डेटा कंसोल के रूप में "कंसोल पर उपयोगकर्ता इनपुट" निर्दिष्ट करना चाहते हैं, तो file("stdin")
उपयोग करें। यह कार्य (पढ़ने कई डेटा में एक फ़ाइल नाम के बजाय इस्तेमाल किया जा सकता scan
, read.table
, read.csv
, ...)। उपयोगकर्ता इनपुट को स्ट्रिंग से संख्याओं में परिवर्तित करने के बाद, प्लॉटिंग शुरू होती है। वहां, यह देखा जा सकता है, कि प्लॉटिंग कमांड जो एक फाइल में लिखे जाने के लिए होती है, उसे दो कमांड में संलग्न किया जाना चाहिए। ये इस मामले में png(.)
और dev.off()
। पहला फ़ंक्शन वांछित आउटपुट फ़ाइल प्रारूप (अन्य सामान्य विकल्प jpeg(.)
और pdf(.)
) पर निर्भर करता है। दूसरा फ़ंक्शन, dev.off()
हमेशा आवश्यक होता है। यह फ़ाइल को प्लॉट लिखता है और प्लॉटिंग प्रक्रिया को समाप्त करता है।
एक स्टैंडअलोन आर स्क्रिप्ट तैयार करना
लिनक्स / मैक
स्टैंडअलोन स्क्रिप्ट की फ़ाइल को पहले निष्पादन योग्य बनाया जाना चाहिए। यह फ़ाइल पर राइट-क्लिक करके, "गुण" खोलने के मेनू में और "अनुमतियाँ" टैब में "निष्पादन योग्य" चेक की जांच करके हो सकता है। वैकल्पिक रूप से, कमांड
chmod +x PATH/TO/SCRIPT/SCRIPTNAME.R
एक टर्मिनल में बुलाया जा सकता है।
खिड़कियाँ
प्रत्येक स्टैंडअलोन स्क्रिप्ट के लिए, एक बैच फ़ाइल को निम्नलिखित सामग्री के साथ लिखा जाना चाहिए:
"C:\Program Files\R-XXXXXXX\bin\Rscript.exe" "%~dp0\XXXXXXX.R" %*
एक बैच फ़ाइल एक सामान्य पाठ फ़ाइल है, लेकिन जिसमें *.bat
एक्सटेंशन *.txt
एक्सटेंशन को छोड़कर है। इसे बचाने के लिए notepad
( Word
नहीं) या इसी तरह के टेक्स्ट एडिटर का उपयोग करके बनाएं और फाइल का नाम सेव डायलॉग में उद्धरण चिह्नों "FILENAME.bat"
। मौजूदा बैच फ़ाइल को संपादित करने के लिए, उस पर राइट-क्लिक करें और "संपादित करें" चुनें।
आपको हर जगह ऊपर दिखाए गए कोड को अनुकूलित करना होगा XXX...
लिखा है:
- जहाँ आपका R अधिष्ठापन रहता है, वहाँ सही फ़ोल्डर डालें
- अपनी स्क्रिप्ट का सही नाम डालें और इस बैच फ़ाइल के समान निर्देशिका में रखें।
कोड में तत्वों की व्याख्या: पहला भाग "C:\...\Rscript.exe"
विंडोज को बताता है कि Rscript.exe
प्रोग्राम को कहां खोजना है। दूसरा भाग "%~dp0\XXX.R"
आपके द्वारा लिखी गई आर स्क्रिप्ट को निष्पादित करने के लिए Rscript
को बताता है जो बैच फ़ाइल के समान फ़ोल्डर में रहता है ( %~dp0
बैच फ़ाइल फ़ोल्डर के लिए खड़ा है)। अंत में, %*
आगे की कोई भी कमांड लाइन दलीलें जो आप बैच फ़ाइल को आर स्क्रिप्ट में देते हैं।
यदि आप बैच फ़ाइल पर डबल-क्लिक करते हैं, तो आर स्क्रिप्ट निष्पादित हो जाती है। यदि आप फ़ाइलों को बैच फ़ाइल पर खींचते हैं, तो संबंधित फ़ाइल नाम कमांड लाइन तर्क के रूप में R स्क्रिप्ट को दिए जाते हैं।
आर स्क्रिप्ट निष्पादित करने के लिए लिटलर का उपयोग करना
littler ( थोडा r r ) ( क्रान ) अन्य विशेषताओं के अलावा, कमांड लाइन से R लिपियों को चलाने की दो संभावनाएँ देता है littler's r
कमांड (जब कोई लिनक्स या MacOS के साथ काम करता है)।
स्थापित करनेवाला
आर से:
install.packages("littler")
r
का मार्ग टर्मिनल में मुद्रित होता है, जैसे
You could link to the 'r' binary installed in
'/home/*USER*/R/x86_64-pc-linux-gnu-library/3.4/littler/bin/r'
from '/usr/local/bin' in order to use 'r' for scripting.
सिस्टम की कमांड लाइन से r
को कॉल करने में सक्षम होने के लिए, एक सिमलिंक की आवश्यकता होती है:
ln -s /home/*USER*/R/x86_64-pc-linux-gnu-library/3.4/littler/bin/r /usr/local/bin/r
Apt-get (Debian, Ubuntu) का उपयोग करना:
sudo apt-get install littler
मानक .r स्क्रिप्ट के साथ लिटलर का उपयोग करना
littler
से r
साथ स्वसंपूर्ण R स्क्रिप्ट को स्क्रिप्ट में बिना किसी बदलाव के निष्पादित करना संभव है। उदाहरण लिपि:
# User message (\n = end the line)
cat("Input numbers, separated by space:\n")
# Read user input as one string (n=1 -> Read only one line)
input <- readLines(file('stdin'), n=1)
# Split the string at each space (\\s == any space)
input <- strsplit(input, "\\s")[[1]]
# convert the obtained vector of strings to numbers
input <- as.numeric(input)
# Open the output picture file
png("hist.png",width=400, height=300)
# Draw the histogram
hist(input)
# Close the output file
dev.off()
ध्यान दें कि कोई भी शेबिंग स्क्रिप्ट के शीर्ष पर नहीं है। जब उदाहरण hist.r
रूप में सहेजा जाता है, तो यह सिस्टम कमांड से सीधे hist.r
करने योग्य होता है:
r hist.r
शेबाटेड स्क्रिप्ट पर लिटलर का उपयोग करना
शेटंग के उपयोग के साथ, लिटलर के साथ निष्पादन योग्य आर स्क्रिप्ट बनाना भी संभव है
#!/usr/bin/env r
स्क्रिप्ट के शीर्ष पर। संबंधित R स्क्रिप्ट को chmod +X /path/to/script.r
साथ निष्पादन योग्य बनाया जाना है और सिस्टम टर्मिनल से सीधे कॉल करने योग्य है।