120 likes | 236 Views
ALGORITME & PEMROGRAMAN. Abdul Kudus, SSi ., MSi ., PhD. Senin, 6.30 – 9.00 Rabu, 12.00 – 14.00. Menghindari Reduksi Dimensi yg Tidak Diinginkan. z adalah matriks. > z [,1] [,2] [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8 > r <- z[2,] > r [1] 2 6.
E N D
ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, 12.00 – 14.00
Menghindari Reduksi Dimensi yg Tidak Diinginkan z adalah matriks > z [,1] [,2] [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8 > r <- z[2,] > r [1] 2 6 r adalah vektor (terjadi reduksi dimensi) > attributes(z) $dim [1] 4 2 > attributes(r) NULL > str(z) int [1:4, 1:2] 1 2 3 4 5 6 7 8 > str(r) int [1:2] 2 6 bukti bhw r adalah vektor Hal ini harus diperhatikan dlm pemrograman
Agar tidak terjadi reduksi dimensi, gunakan argumen ‘drop’ > r <- z[2,, drop=FALSE] > r [,1] [,2] [1,] 2 6 > dim(r) [1] 1 2 r tetap mrp matriks Vektor bisa dijadikan matriks dengan perintah as.matrix > u [1] 1 2 3 > v <- as.matrix(u) > attributes(u) NULL > attributes(v) $dim [1] 3 1
Memberi Nama kepada Baris dan Kolom Matriks > z [,1] [,2] [1,] 1 3 [2,] 2 4 > colnames(z) NULL > colnames(z) <- c("a","b") > z a b [1,] 1 3 [2,] 2 4 > colnames(z) [1] "a" "b" > z[,"a"] [1] 1 2 memberi nama kolom merujuk suatu kolom
Array Berdimensi Tinggi Dalam kontek statistika, baris-baris dari matriks adalah pengamatan, misal orang, dan kolom-kolom adalah variabel, seperti berat badan dan tekanan darah. Maka matriks berupa struktur data berdimensi dua. Misalkan kita mengukur variabel-variabel tsb pada waktu yg berbeda, sehingga setiap angka data kita adalah utk tiap orang tiap variabel tiap waktu. Oleh karena itu waktu menjadi dimensi ketiga. Data tsb dalam R disebut array.
> tests[3,2,1] [1] 48 > tests , , 1 [,1] [,2] [1,] 46 30 [2,] 21 25 [3,] 50 48 , , 2 [,1] [,2] [1,] 46 43 [2,] 41 35 [3,] 50 49 Seperti halnya kita membuat array berdimensi 3 dgn menggabungkan dua matriks, maka kita juga bisa buat array berdimensi 4 dgn menggabungkan dua atau lebih array berdimensi 3. > firsttest [,1] [,2] [1,] 46 30 [2,] 21 25 [3,] 50 50 > secondtest [,1] [,2] [1,] 46 43 [2,] 41 35 [3,] 50 50 > tests <- array(data=c(firsttest,secondtest),dim=c(3,2,2)) > attributes(tests) $dim [1] 3 2 2
Struktur Data LIST Berbeda dengan vektor (dan matriks) dimana semua unsurnya harus mempunyai jenis yang sama (angka saja atau abyad saja), list dapat menggabungkan obyek-obyek yang berbeda jenis. Membuat list • Misalkan database pegawai Unisba, dimana tiap pegawai mempunyai data: • Nama • Gaji • Status (TRUE = Dosen, FALSE = Karyawan) Maka bagi seorang pegawai yang bernama Abu kita bisa buat datanya yang mempunyai struktur list > data.pegawai <- list(name="Abu", gaji=300000, status=FALSE) Disebut tag. Sifatnya opsional
Alternatifnya kita bisa buat seperti ini > data.pegawai2 <- list("Abu",300000,FALSE) > data.pegawai $name [1] "Abu" $gaji [1] 3e+05 $status [1] FALSE > data.pegawai2 [[1]] [1] "Abu" [[2]] [1] 3e+05 [[3]] [1] FALSE
Meng-indeks (subskrip) list > data.pegawai$gaji [1] 3e+05 > data.pegawai[["gaji"]] [1] 3e+05 > data.pegawai[[2]] [1] 3e+05 Jadi ada 3 cara utk mengakses komponen d dari sebuah list yang bernama daftar, yaitu? Perbedaan mengakses dgn kurung dobel dan kurung tunggal?
Menambah dan menghapus unsur list > z <- list(a="abc",b=12) > z $a [1] "abc" $b [1] 12 > z$c <- "berlayar" # tambah komponen c > # apakah c sudah ditambahkan? > z $a [1] "abc" $b [1] 12 $c [1] "berlayar"
Kita bisa menghapus komponen dari list dengan membuatnya menjadi NULL > z$b <- NULL > z $a [1] "abc" $c [1] "berlayar"
Contoh: Cari kata dari teks carikata <- function(file) { # baca kata-kata dr file ke dlm vektor abyad txt <- scan(file,"") dk <- list() for (i in 1:length(txt)) { kata <- txt[i] # kata ke-i dr file input dk[[kata]] <- c(dk[[kata]],i) } return(dk) } > carikata("c:/batuta.txt")