الفرق بين require() والمكتبة() في r
يمكن استخدام كل من الدالتين require() والمكتبة() لتحميل الحزم في لغة R، لكن هناك اختلافًا بسيطًا بينهما:
- سيُظهر require() تحذيرًا إذا لم يتم تثبيت الحزمة ثم يستمر في تنفيذ التعليمات البرمجية.
- ستؤدي Library() إلى ظهور خطأ وإيقاف تنفيذ التعليمات البرمجية.
وبسبب هذا الاختلاف، يتم استخدام require() بشكل عام فقط إذا كنت تقوم بتحميل الحزم إلى دالة بحيث تستمر الوظيفة في العمل حتى في حالة عدم وجود الحزمة.
من الناحية العملية، يوصي معظم المبرمجين باستخدام Library() لأنك سوف ترغب في تلقي رسالة خطأ تعلمك بأن الحزمة غير مثبتة.
هذا شيء يجب أن تكون على دراية به في أقرب وقت ممكن عند كتابة التعليمات البرمجية.
يوضح المثال التالي الفرق بين وظائف require() و Library() عملياً.
مثال: الفرق بين require() والمكتبة() في R
لنفترض أننا نريد تحميل مجموعة بيانات BostonHousing من حزمة mlbench ، ولكن نفترض أن حزمة mlbench ليست مثبتة بالفعل.
يوضح التعليمة البرمجية التالية كيفية استخدام وظيفة Library() لمحاولة تحميل هذه الحزمة وإجراء تحليل البيانات على مجموعة بيانات BostonHousing :
#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 غير مثبتة بالفعل، فإننا نتلقى خطأ عندما نستخدم وظيفة Library() ولم يتم حتى تنفيذ بقية التعليمات البرمجية.
يعد هذا مفيدًا لأنه يتيح لنا على الفور معرفة أن هذه الحزمة غير مثبتة وأننا بحاجة إلى تثبيتها قبل المتابعة.
ومع ذلك، لنفترض أننا بدلاً من ذلك استخدمنا require() لتحميل حزمة mlbench :
#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)
في هذا المثال، لا نتلقى رسالة خطأ حتى نحاول استخدام الدالة Summary() لتلخيص مجموعة بيانات BostonHousing .
بدلاً من ذلك، نتلقى تحذيرًا بعد استخدام الدالة require() ويستمر تنفيذ بقية التعليمات البرمجية حتى نواجه خطأً.
يوضح هذا المثال الفرق بين Library() و require() في R: تنتج وظيفة Library() خطأً على الفور ولا تنفذ بقية التعليمات البرمجية نظرًا لعدم تحميل mlbench .
ولهذا السبب، في معظم السيناريوهات، ستحتاج إلى استخدام وظيفة Library() عند تحميل الحزم.
المكافأة: التحقق من تثبيت حزمة معينة
يمكننا استخدام الدالة 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 غير مثبتة في بيئتنا الحالية.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تحميل حزم متعددة في R
كيفية مسح البيئة في R
كيفية مسح كافة المؤامرات في RStudio