Search

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.


10. Referensi Lanjut