ALGORITME & PEMROGRAMAN Abdul Kudus, SSi., MSi., PhD. Senin, 6.30 – 9.00 Rabu, 8.00 – Rabu, – Senin, 9.00 – Selasa, – 17.30
Vektor Huruf (Character / String Vector ) Skalar dan vektor bisa juga berisi kata (kalimat) atau huruf. Semua unsur dari vektor haruslah mempunyai jenis yang sama. > colors <- c("red", "yellow", "blue") > more.colors <- c(colors, "green", "magenta", "cyan") > # tambahkan bbrp unsur baru > z <- c("red", "green", 1) #coba campur beda jenis > more.colors [1] "red“ "yellow“ "blue” "green" "magenta" "cyan" > z [1] "red“ "green" "1"
Membuat Data (Dataset) Langkah pertama dalam melakukan analisis data adalah membuat dataset yang berisi informasi yang akan dikaji, dimana format data tsb sesuai dengan keinginan kita. Hal ini dalam R dilakukan dalam: Membuat pilihan struktur data utk data kita Memasukkan atau mengimpor data ke dalam struktur yg sudah dipilih
Memahami dataset Sebuah dataset biasanya berbentuk seperti tabel dimana baris- barisnya menyatakan observasi (pengamatan/individu) dan kolom- kolomnya merupakan variabel. Contoh: data pasien Struktur data dalam R: 1) skalar, 2) vektor, 3) matriks, 4) array, 5) dataframe dan 6) list. Jenis (tipe) atau mode data dalam R: 1) numerik, 2) karakter (abyad), 3) logika (BENAR/SALAH), 4) kompleks (bilangan imajiner) dan 5) mentah (byte)
Struktur Data
Vektor adalah array berdimensi satu yang bisa menampung data jenis numerik, karakter atau logika. Perintah combine c() digunakan utk membuat vektor. Vektor # vektor numerik a <- c(1, 2, 5, 3, 6, -2, 4) # vektor karakter b <- c("satu", "dua", "tiga") # vektor logika c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) Catatan: data dalam sebuah vektor hanya diperbolehkan satu tipe saja (numerik, karakter atau logika). Tidak boleh mencampur tipe berbeda.
Skalar adalah vektor yg hanya mempunyai satu unsur. Skalar # skalar numerik f <- 3 # skalar karakter g <- “Indonesia” # skalar logika h <- TRUE Merujuk unsur dari suatu vektor adalah dengan menggunakan vektor numerik yang menunjukkan posisi yg dirujuknya dan ditulis dalam kurung siku. # merujuk unsur ke-2 dan ke-4 dari vektor a a[c(2,4)]
Matriks adalah array berdimensi dua yang unsur-unsurnya mempunyai tipe yang sama. Dibuat dengan perintah matrix yg mempunyai syntax umum. Matriks myymatrix <- matrix(vektor, nrow=r, ncol=c, byrow=nilai_logika, dimnames=list(vektor_karakter_namabaris, vektor_karakter_namakolom)) vektor: vektor berisi unsur-unsur dari matriks r: banyaknya baris c: banyaknya kolom byrow: menyatakan apakah matriks diisi baris per baris (byrow=TRUE) ataukah kolom per kolom (byrow=FALSE) dimnames: (opsional) berisi label baris dan kolom
> # vektor numerik > a <- c(1, 2, 5, 3, 6, -2, 4) > # vektor karakter > b <- c("satu", "dua", "tiga") > # vektor logika > c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) > # buat matriks 5 x 4 > y <- matrix(1:20, nrow=5, ncol=4) > y [,1] [,2] [,3] [,4] [1,] [2,] [3,] [4,] [5,]
> # buat matriks 2 x 2 dengan label baris dan kolomnya > # isi matriks baris per baris > sel <- c(1,26,24,68) > namabaris <- c("Baris1", "Baris2") > namakolom <- c("Kolom1", "Kolom2") > mymatrix1 <- matrix(sel, nrow=2, ncol=2, byrow=TRUE,dimnames=list(namabaris, namakolom)) > mymatrix1 Kolom1 Kolom2 Baris Baris > # kali ini matriks diisi kolom per kolom > mymatrix2 <- matrix(sel, nrow=2, ncol=2, byrow=FALSE, dimnames=list(namabaris, namakolom)) > mymatrix2 Kolom1 Kolom2 Baris Baris
Kita bisa merujuk baris, kolom atau unsur dari suatu matriks dengan menggunakan subskrip dan kurung siku. X[i,] merujuk baris ke-i dari matriks X. X[,j] merujuk kolom ke-j dari matriks X. X[i,j] merujuk unsur ke-ij (baris ke-i, kolom ke-j). Jika ingin merujuk lebih dari satu baris atau kolom, subskripnya harus berupa vektor numerik. > x <- matrix(1:10, nrow=2) > x [,1] [,2] [,3] [,4] [,5] [1,] [2,] > # ambil baris ke-2 > x[2,] [1]
> # ambil kolom ke-2 > x[,2] [1] 3 4 > # ambil unsur ke-1,4 (baris ke-1, kolom ke-4) > x[1,4] [1] 7 > # ambil unsur-unsur pada baris ke-1, dan kolom ke-4 dan ke-5 > x[1, c(4,5)] [1] 7 9 Seperti vektor, matriks juga hanya berisi satu jenis data.
Array mempunyai dimensi lebih dari dua dan dibuat dgn perintah array. > a <- array(1:24, c(3, 4, 2)) > a,, 1 [,1] [,2] [,3] [,4] [1,] [2,] [3,] ,, 2 [,1] [,2] [,3] [,4] [1,] [2,] [3,] Array Seperti vektor dan matriks, array juga hanya berisi satu jenis data.
Dataframe lebih umum daripada matriks, karena kolom-kolomnya bisa berisi data dengan tipe yang berbeda (numerik, karakter, dll). Contoh data pasien yang terdiri atas tipe data numerik dan karakter. Dataframe dibuat dengan perintah dataframe sbb: Dataframe mydata <- data.frame(kolom1, kolom2, kolom3,…) kolom1, kolom2, kolom3 dst : vektor dengan jenis apapun (karakter, numerik, logika dll.) > patientID <- c(1, 2, 3, 4) > age <- c(25, 34, 28, 52) > diabetes <- c("Type1", "Type2", "Type1", "Type1") > status <- c("Poor", "Improved", "Excellent", "Poor") > patientdata <- data.frame(patientID, age, diabetes, status) > patientdata patientID age diabetes status Type1 Poor Type2 Improved Type1 Excellent Type1 Poor
Banyak cara untuk merujuk unsur dari dataframe. Bisa menggunakan subskrip atau nama kolomnya sbb: > patientdata[1:2] patientID age > patientdata[c("diabetes","status")] diabetes status 1 Type1 Poor 2 Type2 Improved 3 Type1 Excellent 4 Type1 Poor > patientdata$age [1] notasi $ utk merujuk variabel tertentu
List List adalah struktur data yang bisa berisi lebih dari satu jenis data (numerik, karakter dll) dan lebih dari satu struktur data (vektor dll) > # Contoh list berisi 4 komponen - > # string (karakter), vektor numerik, matriks, dan vektor karakter > g <- "List buatanku" > h <- c(25, 26, 18, 39) > j <- matrix(1:10, nrow=5) > k <- c("satu", "dua", "tiga") > mylist <- list(judul=g, umur=h, j, k)
> mylist $judul [1] "List buatanku" $umur [1] [[3]] [,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10 [[4]] [1] "satu" "dua" "tiga" Kita bisa merujuk unsur dari suatu list dengan nomor komponennya atau nama komponennya di dalam doble kurung siku. > mylist[[2]] [1] > mylist[["umur"]] [1] sama
Beberapa Perintah Dasar R sum jumlah mean rata-rata max terbesar min terkecil mediantengah-tengah varvariansi (keberagaman) sdstandar deviasi ( var) Catatan: untuk mengisi data missing (hilang) bisa digunakan NA Contoh panjang <- c(75,85,91.6,95,NA,105.5,106) Contoh > a <- c(1, 2, 5, 3, 6, -2, 4) > sum(a) [1] 19 Hati-hati jika vektor datanya berisi data hilang (NA) !! > sum(panjang) [1] NA > sum(panjang,na.rm=TRUE) [1] 558.1
Perintah cbind Untuk mengikat / menggandengkan vektor-vektor dalam kolom per kolom menjadi matriks > vektor1 <- c(1, 2, 3,4) > vektor2 <- c(10,20,30,40) > vektor3 <- c(100,200,300,400) > cbind(vektor1,vektor2,vektor3) vektor1 vektor2 vektor3 [1,] [2,] [3,] [4,] > hasil <- cbind(vektor1,vektor2,vektor3) > class(hasil) [1] "matrix"
Perintah dim Untuk mengetahui dimensi dari obyek > dim(hasil) [1] 4 3 artinya 4 baris dan 3 kolom Perintah nrow Untuk mengetahui banyaknya baris dari obyek Perintah ncol Untuk mengetahui banyaknya kolom dari obyek Perintah length Untuk mengetahui banyaknya unsur dari obyek > nrow(hasil) [1] 4 > ncol(hasil) [1] 3 > length(hasil) [1] 12