Perbedaan antara require() dan perpustakaan() di r


Baik fungsi require() maupun library() dapat digunakan untuk memuat paket di R, namun keduanya memiliki sedikit perbedaan:

  • require() akan menampilkan peringatan jika suatu paket tidak diinstal dan kemudian melanjutkan mengeksekusi kode.
  • perpustakaan() akan menimbulkan kesalahan dan menghentikan eksekusi kode.

Karena perbedaan ini, require() umumnya hanya digunakan jika Anda memuat paket ke dalam suatu fungsi agar fungsi tersebut terus berjalan meskipun paket tersebut tidak ada.

Dalam praktiknya, sebagian besar pemrogram merekomendasikan penggunaan perpustakaan() karena Anda ingin menerima pesan kesalahan yang memberi tahu Anda bahwa suatu paket tidak diinstal.

Ini adalah sesuatu yang harus Anda waspadai sedini mungkin saat menulis kode.

Contoh berikut mengilustrasikan perbedaan antara fungsi require() dan library() dalam praktiknya.

Contoh: perbedaan antara require() dan library() di R

Misalkan kita ingin memuat dataset BostonHousing dari paket mlbench , tetapi asumsikan paket mlbench belum terinstal.

Kode berikut menunjukkan cara menggunakan fungsi perpustakaan() untuk mencoba memuat paket ini dan melakukan analisis data pada kumpulan data 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)

Karena paket mlbench belum diinstal, kami menerima kesalahan saat menggunakan fungsi perpustakaan() dan kode lainnya bahkan tidak dijalankan.

Ini berguna karena akan segera memberi tahu kami bahwa paket ini belum terinstal dan kami perlu menginstalnya sebelum melanjutkan.

Namun, misalkan kita menggunakan require() untuk memuat paket 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)

Dalam contoh ini, kita tidak menerima pesan kesalahan sampai kita mencoba menggunakan fungsi ringkasan() untuk meringkas kumpulan data BostonHousing .

Sebaliknya, kita menerima peringatan setelah menggunakan fungsi require() dan kode lainnya terus dijalankan hingga kita menemukan kesalahan.

Contoh ini mengilustrasikan perbedaan antara perpustakaan() dan memerlukan() di R: Fungsi perpustakaan() segera menghasilkan kesalahan dan tidak mengeksekusi sisa kode karena mlbench tidak dimuat.

Inilah sebabnya dalam sebagian besar skenario Anda ingin menggunakan fungsi perpustakaan() saat memuat paket.

Bonus: periksa apakah paket tertentu telah diinstal

Kita dapat menggunakan fungsi system.file() untuk memeriksa apakah paket tertentu diinstal di lingkungan R kita saat ini.

Misalnya, kita dapat menggunakan sintaks berikut untuk memeriksa apakah paket ggplot2 diinstal di lingkungan R saat ini:

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

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

Karena ggplot2 diinstal, fungsinya hanya mengembalikan jalur file tempat paket diinstal.

Sekarang misalkan kita memeriksa apakah paket mlbench sudah diinstal:

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

[1] ""

Fungsi ini mengembalikan string kosong, yang memberi tahu kita bahwa paket mlbench tidak diinstal di lingkungan kita saat ini.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara memuat banyak paket di R
Cara membersihkan lingkungan di R
Cara menghapus semua plot di RStudio

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *