Pelajaran modul (2/2)
Eksplorasi dan Agregasi
R dibuat terutama sebagai lingkungan statistik, sehingga menyediakan banyak fungsi bawaan untuk menganalisis, meringkas, dan memahami distribusi data dalam vektor atau tabel.
Fungsi Statistik Dasar
R memudahkan Anda menghitung ukuran utama pusat dan penyebaran pada vektor numerik:
mean(x): Menghitung mean aritmatika elemen.median(x): Menghitung median (nilai tengah).sd(x): Menghitung deviasi standar (ukuran penyebaran data).min(x)danmax(x): Mengembalikan nilai minimum dan maksimum masing-masing.
values <- c(10, 12, 15, 18, 20, 22)
avg <- mean(values)
dispersion <- sd(values)
cat("Mean:", avg, "- Std Dev:", round(dispersion, 2), "\n")Menangani Data yang Hilang (NA)
Di dunia nyata, kumpulan data sering kali berisi nilai yang hilang, yang diwakili dalam R oleh entitas khusus NA (Tidak Tersedia).
Jika Anda mencoba menghitung mean atau agregat lainnya pada vektor yang berisi satu NA, R akan mengembalikan NA sebagai hasilnya. Untuk mengabaikan nilai yang hilang, Anda harus memberikan argumen logis na.rm = TRUE (NA hapus):
temperatures <- c(18, 21, NA, 24, 19)
# This will return NA
print(mean(temperatures))
# This will ignore the NA and perform the calculation on valid values
print(mean(temperatures, na.rm = TRUE))Ringkasan Global dengan summary()
Fungsi summary() adalah alat canggih yang memberikan gambaran statistik lengkap tentang vektor atau seluruh Bingkai Data, yang menunjukkan min, kuartil pertama, median, mean, kuartil ketiga, dan maks:
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))Menggabungkan Data dengan aggregate
Saat bekerja dengan kerangka data, statistik ringkasan (seperti mean atau jumlah) biasanya dihitung untuk kelompok atau kategori tertentu. Fungsi aggregate() di R menyederhanakan proses ini:
df <- data.frame(
department = c("HR", "IT", "HR", "IT"),
salary = c(3000, 4500, 3200, 4800)
)
# Calcola la media dei salari per dipartimento
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)Sintaks salary ~ department berarti "menganalisis variabel salary berdasarkan variabel department". Argumen FUN = mean menetapkan bahwa kita ingin menghitung mean aritmatika untuk setiap grup.
Pemfilteran Tingkat Lanjut dengan subset
Fungsi subset() menyediakan cara yang intuitif dan elegan untuk mengekstrak subkumpulan baris dan kolom dari bingkai data, menghindari penggunaan tanda kurung siku yang rumit:
employees <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 34, 29),
active = c(TRUE, FALSE, TRUE)
)
# Filtra solo i dipendenti attivi con età superiore a 28
active_employees <- subset(employees, active == TRUE & age > 28)Cobalah sendiri
Mengingat suhu vektor, hitung mean dan simpan dalam variabel mean_temp. Kemudian hitung mediannya dan simpan di median_temp.
Tunjukkan petunjuk
Menggunakan mean_temp <- mean(suhu) dan median_temp <- median(suhu)
Solusi tersedia setelah 3 upaya
Mengingat vektor skor berisi nilai NA, hitung deviasi standar vektor tidak termasuk nilai yang hilang, dan simpan dalam variabel sd_scores.
Tunjukkan petunjuk
Gunakan fungsi sd() dengan argumen na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)
Solusi tersedia setelah 3 upaya
Mengingat bingkai data df, dapatkan ringkasan statistik dari kolom nilai dan simpan dalam variabel stats_summary.
Tunjukkan petunjuk
Ekstrak kolom menggunakan operator $ dan teruskan ke ringkasan(): stats_summary <- ringkasan(df$values)
Solusi tersedia setelah 3 upaya
Mengingat kerangka data penjualan, gunakan fungsi agregat() untuk menghitung jumlah (FUN = jumlah) kolom pendapatan yang dikelompokkan berdasarkan kolom wilayah. Simpan hasilnya pada variabel region_sales.
Tunjukkan petunjuk
Gunakan: region_sales <- agregat(pendapatan ~ wilayah, data = penjualan, FUN = jumlah)
Solusi tersedia setelah 3 upaya
Mengingat produk bingkai data, gunakan fungsi subset() untuk memfilter hanya produk yang termasuk dalam kategori 'Elektronik' (kategori == 'Elektronik') dan memiliki harga lebih dari 100 (harga > 100). Simpan hasilnya pada variabel mahal_elektronik.
Tunjukkan petunjuk
Gunakan: mahal_elektronik <- subset(produk, kategori == 'Elektronik' & harga > 100)
Solusi tersedia setelah 3 upaya