7.3 بسته
خیلی از افراد توابعی که برای پروژههای شخصی خود نوشتهاند را به صورت بسته (Package) اختیار دیگران قرار دادهاند.
- بستههای نصب شده
[1] "Rcpp" "base" "boot"
[4] "class" "cluster" "codetools"
[7] "compiler" "datasets" "foreign"
[10] "graphics" "grDevices" "grid"
[13] "KernSmooth" "lattice" "MASS"
[16] "Matrix" "methods" "mgcv"
[19] "nlme" "nnet" "parallel"
[22] "rpart" "spatial" "splines"
[25] "stats" "stats4" "survival"
[28] "tcltk" "tools" "translations"
[31] "utils"
- مسیر بستههای نصب شده
[1] "C:/Users/User/AppData/Local/R/win-library/4.3"
[2] "C:/Program Files/R/R-4.3.1/library"
7.3.1 نصب بسته
برای استفاده از توابع توسعه داده شده توسط دیگران، باید بسته مربوطه آن تابع را نصب نماییم:
- دانلود و نصب بستهها از مخزن کِرَن (CRAN)
- نصب از مخزن گیتهاب (Github)
ابتدا باید یکی از بستههای
remotes
یا
devtools
را نصب و سپس بسته مورد نظر را با یکی از روش زیر نصب نمایید.
- دانلود از مخازن دیگر
- مخزن بیت باکت (Bitbucket)
با تابع
install_bitbucket() - مخزن گیت جنریک (Generic git)
با تابع
install_git() - …
- مخزن بیت باکت (Bitbucket)
با تابع
7.3.2 بارگذاری بسته
library("package"): تمام توابع موجود در یک پکیج را در محیط کاری آپلود میکند، اگر بسته نصب نباشد خطا (Error) برمیگرداند:
Error in library("alaki") : there is no package called ‘alaki’
require("package"): تمام توابع موجود در یک پکیج را در محیط کاری آپلود میکند، اگر بسته نصب نباشد غلط (FALSE) برمیگرداند:
Loading required package: alaki
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, ... :
there is no package called ‘alaki’
[1] FALSE
package::function(): این روش فقط برای مواقعی است که به صورت محلی میخواهیم تابع خاصی از یک پکیج را استفاده کنیم و دیگر به آن نیازی نداریم.
Sepal.Width Species
1 3.5 setosa
2 3.0 setosa
3 3.2 setosa
4 3.1 setosa
... ... ...
7.3.3 بستههای پرکاربرد
Tidyverse
── Attaching packages ────────────────── tidyverse 1.3.1 ──
✓ ggplot2 3.3.5 ✓ purrr 0.3.4
✓ tibble 3.1.6 ✓ dplyr 1.0.8
✓ tidyr 1.2.0 ✓ stringr 1.4.0
✓ readr 2.1.2 ✓ forcats 0.5.1
── Conflicts ─────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
این بسته متشکل از بستههای معروفی همچون
ggplot،
tidyr،
dplyr،
readr،
stringr
و … است.