1. Persiapan Lingkungan
Pastikan kamu sudah menginstall R dan RStudio. Jika belum, download dari:
Install beberapa package yang sering digunakan:
install.packages(c("tidyverse", "data.table", "ggplot2", "dplyr", "purrr", "lubridate", "stringr", "caret", "shiny"))
2. Manipulasi Data Lanjut dengan dplyr dan data.table
a. dplyr
dplyr adalah package untuk manipulasi data secara efisien. Berikut beberapa fungsi lanjut:
-
mutate(): Menambahkan kolom baru atau mengubah kolom yang sudah ada. -
summarize(): Menghasilkan ringkasan data. -
group_by(): Mengelompokkan data berdasarkan kolom tertentu. -
filter(): Menyaring baris berdasarkan kondisi. -
arrange(): Mengurutkan data.
Contoh:
library(dplyr) data <- mtcars # Menambahkan kolom baru data <- data %>% mutate(kpl = mpg * 0.425) # Konversi mpg ke km per liter # Ringkasan data summary_data <- data %>% group_by(cyl) %>% summarise(avg_kpl = mean(kpl), max_hp = max(hp)) print(summary_data)
b. data.table
data.table adalah package untuk manipulasi data yang sangat cepat, terutama untuk dataset besar.
-
Sintaks:
DT[i, j, by]-
i: Filter baris. -
j: Operasi pada kolom. -
by: Pengelompokan.
-
Contoh:
library(data.table) data <- as.data.table(mtcars) # Menambahkan kolom baru data[, kpl := mpg * 0.425] # Ringkasan data summary_data <- data[, .(avg_kpl = mean(kpl), max_hp = max(hp)), by = cyl] print(summary_data)
3. Visualisasi Data Lanjut dengan ggplot2
ggplot2 adalah package untuk visualisasi data yang powerful. Berikut beberapa teknik lanjut:
-
Faceting: Membagi plot menjadi beberapa panel berdasarkan kategori.
-
Layering: Menambahkan layer seperti garis, titik, atau area.
-
Custom Theme: Mengubah tampilan plot.
Contoh:
library(ggplot2)
# Scatter plot dengan faceting
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point(size = 3) +
facet_wrap(~gear) +
theme_minimal() +
labs(title = "Hubungan Berat dan Konsumsi Bahan Bakar",
x = "Berat (1000 lbs)",
y = "Miles per Gallon (mpg)",
color = "Silinder")
4. Pemrograman Fungsional dengan purrr
purrr adalah package untuk pemrograman fungsional di R. Ini sangat berguna untuk bekerja dengan list dan vektor.
a. Fungsi map()
Digunakan untuk mengaplikasikan fungsi ke setiap elemen dalam list atau vektor.
Contoh:
library(purrr) data <- list(a = 1:5, b = 6:10, c = 11:15) # Menggunakan map untuk menghitung rata-rata averages <- map(data, mean) print(averages)
b. Fungsi map2() dan pmap()
-
map2(): Mengaplikasikan fungsi ke dua vektor/list. -
pmap(): Mengaplikasikan fungsi ke banyak vektor/list.
Contoh:
# Menggunakan map2 result <- map2(data$a, data$b, ~ .x + .y) print(result)
5. Manipulasi String dengan stringr
stringr adalah package untuk manipulasi string yang mudah digunakan.
Contoh:
library(stringr) text <- "Belajar R itu menyenangkan!" # Menghitung jumlah karakter n_char <- str_length(text) # Mengganti kata new_text <- str_replace(text, "menyenangkan", "seru") print(n_char) print(new_text)
6. Analisis Data Temporal dengan lubridate
lubridate memudahkan bekerja dengan data tanggal dan waktu.
Contoh:
library(lubridate)
# Parsing tanggal
date <- ymd("2023-10-15")
# Menambahkan 1 bulan
new_date <- date %m+% months(1)
# Menghitung selisih hari
diff <- today() - date
print(new_date)
print(diff)
7. Machine Learning dengan caret
caret adalah package untuk machine learning yang menyederhanakan proses modeling.
Contoh:
library(caret) # Membagi data menjadi training dan testing set.seed(123) train_index <- createDataPartition(iris$Species, p = 0.8, list = FALSE) train_data <- iris[train_index, ] test_data <- iris[-train_index, ] # Melatih model model <- train(Species ~ ., data = train_data, method = "rf") # Prediksi predictions <- predict(model, test_data) # Evaluasi confusionMatrix(predictions, test_data$Species)
8. Membuat Aplikasi Interaktif dengan shiny
shiny adalah package untuk membuat aplikasi web interaktif dengan R.
Contoh sederhana:
library(shiny)
# UI
ui <- fluidPage(
titlePanel("Aplikasi Shiny Sederhana"),
sidebarLayout(
sidebarPanel(
sliderInput("bins", "Jumlah bins:", min = 1, max = 50, value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)
)
# Server
server <- function(input, output) {
output$distPlot <- renderPlot({
x <- faithful$waiting
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
# Run aplikasi
shinyApp(ui = ui, server = server)
9. Tips dan Best Practices
-
Gunakan
pipe(%>%): Memudahkan membaca dan menulis kode. -
Optimasi Kode: Gunakan
data.tableuntuk dataset besar. -
Debugging: Gunakan
browser()untuk debugging. -
Version Control: Gunakan Git untuk mengelola proyek R.