आर में आवश्यकता() और लाइब्रेरी() के बीच अंतर


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

  • यदि कोई पैकेज स्थापित नहीं है तो require() एक चेतावनी दिखाएगा और फिर कोड निष्पादित करना जारी रखेगा।
  • लाइब्रेरी() एक त्रुटि उत्पन्न करेगी और कोड निष्पादन रोक देगी।

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

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

यह ऐसी चीज़ है जिसके बारे में आपको कोड लिखते समय यथाशीघ्र अवगत होना चाहिए।

निम्नलिखित उदाहरण व्यवहार में आवश्यकता() और लाइब्रेरी() कार्यों के बीच अंतर को दर्शाता है।

उदाहरण: आर में आवश्यकता() और लाइब्रेरी() के बीच अंतर

मान लीजिए कि हम mlbench पैकेज से बोस्टनहाउसिंग डेटासेट लोड करना चाहते हैं, लेकिन मान लें कि mlbench पैकेज पहले से इंस्टॉल नहीं है।

निम्नलिखित कोड दर्शाता है कि इस पैकेज को लोड करने और बोस्टनहाउसिंग डेटासेट पर डेटा विश्लेषण करने का प्रयास करने के लिए लाइब्रेरी() फ़ंक्शन का उपयोग कैसे करें:

 #attempt to load mlbench library
library (mlbench)

Error in library(mlbench): there is no package called 'mlbench'

#load Boston Housing dataset
data(BostonHousing)

#view summary of Boston Housing dataset
summary(BostonHousing)

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

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

यह उपयोगी है क्योंकि यह हमें तुरंत बता देता है कि यह पैकेज इंस्टॉल नहीं है और आगे बढ़ने से पहले हमें इसे इंस्टॉल करना होगा।

हालाँकि, मान लीजिए कि हम mlbench पैकेज को लोड करने के लिए require() का उपयोग करते हैं:

 #attempt to load mlbench library
require (mlbench)

Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
  there is no package called 'mlbench'

#load Boston Housing dataset
data(BostonHousing)

Warning message:
In data(BostonHousing) : data set 'BostonHousing' not found

#view summary of Boston Housing dataset
summary(BostonHousing)

Error in summary(BostonHousing): object 'BostonHousing' not found

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

इस उदाहरण में, जब तक हम बोस्टनहाउसिंग डेटासेट को सारांशित करने के लिए सारांश() फ़ंक्शन का उपयोग करने का प्रयास नहीं करते, तब तक हमें कोई त्रुटि संदेश प्राप्त नहीं होता है।

इसके बजाय, हमें require() फ़ंक्शन का उपयोग करने के बाद एक चेतावनी प्राप्त होती है और शेष कोड तब तक निष्पादित होता रहता है जब तक हमें कोई त्रुटि नहीं मिलती।

यह उदाहरण R में लाइब्रेरी() और require() के बीच अंतर को दर्शाता है: लाइब्रेरी() फ़ंक्शन तुरंत एक त्रुटि उत्पन्न करता है और शेष कोड निष्पादित नहीं करता है क्योंकि mlbench लोड नहीं होता है।

यही कारण है कि अधिकांश परिदृश्यों में आप पैकेज लोड करते समय लाइब्रेरी() फ़ंक्शन का उपयोग करना चाहेंगे।

बोनस: जांचें कि कोई विशेष पैकेज स्थापित है या नहीं

हम यह जांचने के लिए system.file() फ़ंक्शन का उपयोग कर सकते हैं कि हमारे वर्तमान R वातावरण में कोई विशेष पैकेज स्थापित है या नहीं।

उदाहरण के लिए, हम यह जांचने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं कि क्या ggplot2 पैकेज वर्तमान R वातावरण में स्थापित है:

 #check if ggplot2 is installed
system. file (package=' ggplot2 ')

[1] "C:/Users/bob/Documents/R/win-library/4.0/ggplot2"

चूंकि ggplot2 स्थापित है, फ़ंक्शन बस उस फ़ाइल पथ को लौटाता है जहां पैकेज स्थापित है।

अब मान लीजिए कि हम जाँचते हैं कि mlbench पैकेज स्थापित है या नहीं:

 #check if mlbench is installed
system. file (package=' mlbench ')

[1] ""

फ़ंक्शन एक खाली स्ट्रिंग लौटाता है, जो हमें बताता है कि mlbench पैकेज हमारे वर्तमान परिवेश में स्थापित नहीं है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:

आर में एकाधिक पैकेज कैसे लोड करें
आर में पर्यावरण को कैसे साफ़ करें?
RStudio में सभी प्लॉट कैसे साफ़ करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *