Fundamental Series — Part 3 of 20
Di Stata, dataset itu sendiri adalah DataFrame. Tidak perlu membuat objek terpisah — data langsung hidup di memori sebagai satu tabel. Part ini membahas cara membuat, memeriksa, dan memanipulasi dataset di Stata.
Membuat Dataset: input
clear
input str15 kota populasi str10 pulau
"Jakarta" 10.56 "Jawa"
"Bandung" 2.44 "Jawa"
"Surabaya" 2.87 "Jawa"
"Medan" 2.12 "Sumatera"
"Makassar" 1.42 "Sulawesi"
endStata hanya bekerja dengan satu dataset aktif di memori. Untuk bekerja dengan beberapa dataset sekaligus, kamu perlu save, clear, use, atau gunakan fitur frame (Stata 16+).
Cara Lain Membuat Data
* Dari nol
clear
set obs 100
generate id = _n
generate x = rnormal() // random normal
* Load dataset bawaan
sysuse auto, clear // data mobil
webuse nlswork, clear // data longitudinal
* Load file .dta
use "data/survey.dta", clearMemeriksa Struktur
describe — Struktur Dataset
sysuse auto, clear
describeContains data from .../auto.dta
Observations: 74
Variables: 12
──────────────────────────────────────────
Variable Storage Display Value
name type format label
──────────────────────────────────────────
make str18 %-18s
price int %8.0gc
mpg int %8.0g
...
list — Tampilkan Data
list in 1/5 // 5 observasi pertama
list kota populasi // kolom tertentu
list if populasi > 2.5 // filter
list kota populasi in 1/3 // kombinasibrowse — Buka Data Editor
browse // buka data editor (read-only)
edit // buka data editor (bisa edit)Dimensi & Info
describe // info lengkap
count // jumlah observasi
describe, short // ringkas: obs & var saja
* Jumlah variabel
display c(k) // jumlah variabel
display _N // jumlah observasiMengakses Kolom (Variabel)
Di Stata, kamu langsung sebut nama variabel dalam perintah:
* Lihat satu variabel
list kota
* Statistik satu variabel
summarize populasi
* Beberapa variabel
summarize populasi luas
list kota populasi pulauWildcard & Shortcut
* Semua variabel yang diawali "pop"
describe pop*
* Variabel ke-2 sampai ke-4
describe kota-pulau
* Semua variabel numerik
summarize _all
ds, has(type numeric)Mengakses Baris (Observasi)
* Baris tertentu (subscript)
display kota[1] // "Jakarta"
display populasi[3] // 2.87
* Range observasi
list in 1/3 // baris 1-3
list in -3/l // 3 baris terakhir (l = last)
* Filter dengan if
list if pulau == "Jawa"
list if populasi > 2.5
list if pulau == "Jawa" & populasi > 3in vs if
in 1/5→ berdasarkan posisi (baris 1 sampai 5)if x > 10→ berdasarkan kondisi (lebih umum digunakan)
in lebih cepat tapi bergantung urutan data. if lebih aman dan fleksibel.
Menambah & Mengubah Variabel
* Tambah variabel baru
generate luas = .
replace luas = 661.5 in 1
replace luas = 167.7 in 2
replace luas = 350.5 in 3
replace luas = 265.1 in 4
replace luas = 175.8 in 5
* Buat variabel dari perhitungan
generate kepadatan = populasi / luas * 1e6
* Ubah variabel yang ada
replace populasi = populasi * 1e6Menghapus Variabel & Observasi
* Hapus variabel
drop kepadatan
* Hapus beberapa variabel
drop luas kepadatan
* Simpan hanya variabel tertentu
keep kota populasi pulau
* Hapus observasi
drop if populasi < 2
* Simpan hanya observasi tertentu
keep if pulau == "Jawa"drop dan keep langsung mengubah dataset di memori. Tidak ada undo. Selalu save dulu sebelum menghapus, atau gunakan preserve / restore.
preserve // simpan snapshot
drop if x < 0 // hapus
... analisis ...
restore // kembalikan ke snapshotMenambah Observasi
* Tambah 1 observasi
set obs 6
replace kota = "Semarang" in 6
replace populasi = 1.65 in 6
replace pulau = "Jawa" in 6Mengurutkan Data
* Urutkan ascending
sort populasi
* Urutkan descending
gsort -populasi
* Urutkan by beberapa variabel
sort pulau populasiLabel: Dokumentasi Data
Fitur unik Stata — memberi label pada variabel dan nilai:
* Label variabel (deskripsi kolom)
label variable populasi "Populasi (juta jiwa)"
label variable kota "Nama kota"
* Label nilai (untuk variabel kategorikal)
generate kode_pulau = 1 if pulau == "Jawa"
replace kode_pulau = 2 if pulau == "Sumatera"
replace kode_pulau = 3 if pulau == "Sulawesi"
label define pulau_lbl 1 "Jawa" 2 "Sumatera" 3 "Sulawesi"
label values kode_pulau pulau_lbl
tabulate kode_pulau // tampil label, bukan angkaLatihan
* Buat dataset "provinsi" dengan 5 observasi:
* - nama: 5 nama provinsi
* - ibukota: 5 nama ibukota
* - populasi: 5 angka populasi (juta jiwa)
* - pulau: 5 nama pulau
* 1. Jalankan describe
* 2. Tampilkan 3 observasi pertama (list in 1/3)
* 3. Tampilkan hanya kolom nama dan populasisysuse auto, clear
* 1. Berapa jumlah observasi dan variabel? (describe, short)
* 2. Tampilkan 5 observasi pertama
* 3. Tampilkan hanya make, mpg, dan price
* 4. Filter: mobil dengan mpg > 25
* 5. Filter: foreign == 1 DAN price < 5000sysuse auto, clear
* 1. Buat variabel kpl = mpg * 0.425 (km per liter)
* 2. Buat variabel kategori: "irit" jika kpl > 10, "boros" jika tidak
* (hint: generate kategori = cond(kpl > 10, "irit", "boros"))
* 3. Tabulate kategori — berapa mobil irit vs boros?
* 4. Beri label: label variable kpl "Konsumsi BBM (km/liter)"Ringkasan
| Konsep | Keterangan |
|---|---|
input ... end |
Buat dataset manual |
sysuse / use |
Load dataset bawaan / file |
describe |
Struktur dataset |
list |
Tampilkan data |
browse |
Buka data editor |
count / _N |
Jumlah observasi |
generate |
Buat variabel baru |
replace |
Ubah nilai variabel |
drop / keep |
Hapus / pertahankan variabel/observasi |
sort / gsort |
Urutkan data |
label |
Dokumentasi variabel & nilai |
preserve / restore |
Snapshot & rollback dataset |
Sebelumnya: Part 2 — Variabel, Macro & Scalar Selanjutnya: Part 4 — Operator & Ekspresi