Fundamental Series — Part 11 of 20
R punya ekosistem package yang sangat kaya. Memahami cara install, load, dan mengelola package adalah skill dasar yang penting.
Install Package
# Dari CRAN (repository resmi)
install.packages("dplyr")
install.packages(c("ggplot2", "tidyr", "readr"))
# Dari GitHub
# install.packages("remotes")
remotes::install_github("tidyverse/dplyr")Load Package
# library() — error jika belum install
library(dplyr)
# require() — return FALSE jika gagal (untuk conditional)
if (!require(dplyr)) install.packages("dplyr")
# Panggil fungsi tanpa load
dplyr::filter(df, x > 5)
Catatan
library() vs require()
Gunakan library() di script — gagal keras jika package tidak ada. Gunakan require() hanya di dalam fungsi/conditional.
Cek Package Terinstall
# Daftar semua package
installed.packages()[, "Package"]
# Cek satu package
"dplyr" %in% rownames(installed.packages())
# Info versi
packageVersion("dplyr")
# Update package
update.packages(ask = FALSE)Namespace & Conflicts
library(dplyr)
# Warning: filter masks stats::filter
# Masalah: fungsi dplyr::filter vs stats::filter
# Solusi 1: panggil eksplisit
dplyr::filter(df, x > 5)
stats::filter(ts_data, rep(1/3, 3))
# Solusi 2: paket conflicted
library(conflicted)
conflict_prefer("filter", "dplyr")Package Populer untuk Data Science
| Package | Fungsi |
|---|---|
dplyr |
Manipulasi data |
ggplot2 |
Visualisasi |
tidyr |
Reshape data |
readr |
Import CSV/TSV |
readxl |
Import Excel |
haven |
Import SPSS/Stata/SAS |
stringr |
Manipulasi string |
lubridate |
Tanggal & waktu |
purrr |
Functional programming |
forcats |
Manipulasi factor |
Reproducibility dengan renv
# Inisialisasi renv di project
renv::init()
# Snapshot dependencies saat ini
renv::snapshot()
# Restore dependencies dari lockfile
renv::restore()
TipKenapa
renv?
renv mencatat versi exact setiap package yang digunakan project. Jadi orang lain bisa mereproduksi environment yang sama persis.
Latihan
BahayaLatihan 11.1
# 1. Install dan load package "janitor"
# 2. Cek versinya
# 3. Lihat fungsi apa saja yang tersedia: ls("package:janitor")Ringkasan
| Fungsi | Keterangan |
|---|---|
install.packages() |
Install dari CRAN |
library() |
Load package |
pkg::fungsi() |
Panggil tanpa load |
packageVersion() |
Cek versi |
conflicted |
Handle namespace conflicts |
renv |
Reproducible environments |
Sebelumnya: Part 10 — Missing Values Selanjutnya: Part 12 — Import & Export Data