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.table
untuk dataset besar. -
Debugging: Gunakan
browser()
untuk debugging. -
Version Control: Gunakan Git untuk mengelola proyek R.