Fundamental Series — Part 15 of 20
Split-Apply-Combine di Stata: pisahkan data per grup, hitung statistik, gabungkan. Stata punya beberapa pendekatan — collapse, bysort + egen, dan tabstat.
Setup Data
clear
input str10 nama str10 kota str5 dept gaji
"Andi" "Jakarta" "IT" 5000
"Budi" "Bandung" "IT" 7000
"Citra" "Jakarta" "HR" 6000
"Dina" "Surabaya" "HR" 8000
"Eko" "Bandung" "IT" 4500
"Fani" "Jakarta" "HR" 5500
"Gita" "Surabaya" "IT" 7500
"Hadi" "Bandung" "HR" 6500
endcollapse — Collapse ke Summary
Penting
collapse Menghapus Data Asli!
collapse mengganti dataset di memori dengan hasil agregasi. Gunakan preserve/restore jika perlu data asli.
preserve
collapse (mean) mean_gaji=gaji (sd) sd_gaji=gaji (count) n=gaji, by(kota)
list
restoreFungsi di collapse
| Fungsi | Keterangan |
|---|---|
(mean) |
Rata-rata |
(median) |
Median |
(sd) |
Standar deviasi |
(sum) |
Total |
(min) / (max) |
Min / Max |
(count) |
Jumlah non-missing |
(first) / (last) |
Pertama / terakhir |
bysort + egen — Tanpa Collapse
* Tambah kolom statistik per grup (data tetap utuh)
bysort kota: egen mean_gaji = mean(gaji)
bysort kota: egen sd_gaji = sd(gaji)
bysort kota: egen total_gaji = total(gaji)
* Persen dari total per grup
generate persen = gaji / total_gaji * 100
list nama kota gaji mean_gaji persentabstat — Tabel Statistik
* Statistik per grup (output tabel, tidak ubah data)
tabstat gaji, by(kota) statistics(mean sd min max n)
* Multiple variabel
tabstat gaji, by(dept) statistics(mean sd n) columns(statistics)table — Cross Tabulation
* Frekuensi
table kota
table kota dept
* Dengan statistik
table kota, statistic(mean gaji) statistic(count gaji)
table kota dept, statistic(mean gaji)tab (tabulate) — Frekuensi
tabulate kota
tabulate kota dept
tabulate kota, summarize(gaji)Latihan
BahayaLatihan 15.1
* 1. Collapse: mean gaji per departemen
* 2. Collapse: mean gaji per kota + dept
* 3. Kota mana total gajinya tertinggi?
BahayaLatihan 15.2
* (Tanpa collapse — pakai bysort + egen)
* 1. Buat variabel: gaji sebagai persen total gaji per dept
* 2. Ranking gaji per dept
* 3. List nama yang rank 1 di setiap deptRingkasan
| Perintah | Keterangan |
|---|---|
collapse |
Agregasi (collapse data) |
bysort: egen |
Statistik per grup (data utuh) |
tabstat |
Tabel statistik per grup |
table |
Cross tabulation |
tabulate |
Frekuensi |
preserve/restore |
Simpan data sebelum collapse |
Sebelumnya: Part 14 — Mutate & Arrange Selanjutnya: Part 16 — Reshape & Merge