UIN Maulana Malik Ibrahim Malang
Vector (Vektor) merupakan kumpulan data atau biasa dikatakan struktur data yang paling sederhana. Vektor merupakan kombinasi berbagai nilai (numerik, karakter, logical, dan sebagainya berdasarkan jenis input data) pada objek yang sama. vector karakter, vektor logical, dll. Dalam 1 vektor hanya dapat memuat 1 jenis tipe data (Vektor hanya dapat mengandung jenis data numerik saja, karakter saja, dll).
Untuk membuat sebuah vector ada beberapa cara. Vektor dapat dibuat dengan beberapa cara yaitu:
c()(concatenate) seperti yang disajikan pada sintaks berikut:# membuat vektor numerik
x <- c(3,3.5,4,7)
x # print vektor
## [1] 3.0 3.5 4.0 7.0
# membuat vektor karakter
y <- c("Apel", "Jeruk", "Rambutan", "Salak")
y # print vektor
## [1] "Apel" "Jeruk" "Rambutan" "Salak"
# membuat vektor logical
t <- c("TRUE", "FALSE", "TRUE")
t # print vektor
## [1] "TRUE" "FALSE" "TRUE"
names().# Membuat vektor jumlah buah yang dibeli
Jumlah <- c(5,5,6,7)
names(Jumlah) <- c("Apel", "Jeruk", "Rambutan", "Salak")
# Atau
Jumlah <- c(Apel=5, Jeruk=5, Rambutan=6, Salak=7)
# Print
Jumlah
## Apel Jeruk Rambutan Salak
## 5 5 6 7
Berdasarkan Gambar di bawah , digunakan fungsi names( ) untuk memberi nama pada elemen vektor X. Elemen vektor X pada indeks ke-1diberi nama “Sangat Tidak Puas”, elemen vektor X pada indeks ke-2diberi nama “Tidak Puas”, elemen vektor X pada indeks ke-3diberi nama “Biasa Saja”, elemen vektor X pada indeks ke-4diberi nama “Puas”, dan elemen vektor X pada indeks ke5diberi nama “Sangat Puas”. Kemudian perhatikan perintah R names(X) <- NULL bermaksud untuk menghapus nama pada elemen di vektor X
lenght().length(Jumlah)
## [1] 4
Untuk mengetahui panjang (length) suatu vektor, dapat digunakan fungsi length(). Perhatikan Gambar di bawah. Berdasarkan Gambar di bawah, diketahui panjang dari vektor x adalah 5, yang mana elemennya adalah 1, 5, 3, 6, dan 7. Panjang dari vektor y adalah 4, yang mana elemennya adalah 4, 4, 5, dan 4. Pada Gambar 2.11, digunakan fungsi length( ) untuk mengetahui panjang dari suatu vektor.
Jika pembaca melakukan operasi dengan vektor, operasi akan diterapkan ke setiap elemen vektor. Contoh disediakan pada sintaks di bawah ini:
pendapatan <- c(2000, 1800, 2500, 3000)
names(pendapatan) <- c("Andi", "Joni", "Lina", "Rani")
pendapatan
## Andi Joni Lina Rani
## 2000 1800 2500 3000
# Kalikan pendapatan dengan 3
pendapatan*3
## Andi Joni Lina Rani
## 6000 5400 7500 9000
Seperti yang dapat dilihat, R mengalikan setiap elemen dengan bilangan pengali.
Kita juga dapat mengalikan vektor dengan vektor lainnya.Contohnya disajikan pada sintaks berikut:
# membuat vektor dengan panjang
# sama dengan dengan vektor pendapatan
coefs <- c(2, 1.5, 1, 3)
# Mengalikan pendapatan dengan vektor coefs
pendapatan*coefs
## Andi Joni Lina Rani
## 4000 2700 2500 9000
Berdasarkan sintaks tersebut dapat terlihat bahwa operasi matematik terhadap masing-masing vektor dapat berlangsung jika panjang vektornya sama.
Berikut adalah fungsi lain yang dapat digunakan pada operasi matematika vektor.
max(x) # memperoleh nilai maksimum x
min(x) # memperoleh nilai minimum x
range(x) # memperoleh range vektor x
length(x) # memperoleh jumlah vektor x
sum(x) # memperoleh total penjumlahan vektor x
prod(x) # memeperoleh produk elemen vektor x
mean(x) # memperoleh nilai mean vektor x
sd(x) # standar deviasi vektor x
var(x) # varian vektor x
sort(x) # mengurutkan elemen vektor x dari yang terbesar
Contoh penggunaan fungsi tersebut disajikan beberapa pada sintaks berikut:
# Menghitung range pendapatan
range(pendapatan)
## [1] 1800 3000
# menghitung rata-rata dan standar deviasi pendapatan
mean(pendapatan)
## [1] 2325
sd(pendapatan)
## [1] 537.7
Secara sederhana vektor merupakan deret angka. Vektor bisa jadi berupa data yang kita miliki atau sengaja kita buat untuk tujuan simulasi matematika. Urutan angka-angka ini bisa memiliki interval konstan, contoh: titik waktu pada analisis reaksi kimia, atau dapat pula intervalnya bersifat acak seperti pada simulasi Monte Carlo.
Operator colon (“:”) dapat digunakan untuk membuat sequence vector. Operator tersebut berfungsi sebagai pemisah antara nilai awal dan akhir deret bilangan. Interval nilai sequence yang terbentuk adalah `. Berikut adalah contoh bagaimana cara membuat sequence vector menggunakan operator colon:
# vektor benilai 1 s/d 10
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
# vektor bernilai 10 s/d -1
10:-1
## [1] 10 9 8 7 6 5 4 3 2 1 0 -1
Perlu diperhatikan bahwa dalam aplikasinya operator colon memiliki prioritas tinggi untuk dilakukan komputasi terlebih dahulu dibandingkan operator matematika. Perhatikan sintaks berikut:
n = 10
# membuat vektor bernilai 0 s/d 9
1:n-1
## [1] 0 1 2 3 4 5 6 7 8 9
# membuat vektor bernilai 1 s/d 9
1:(n-1)
## [1] 1 2 3 4 5 6 7 8 9
Jika kita menginginkan interval antar angka selain 1, kita dapat menggunakan fungsi seq(). Format sintaks tersebut adalah sebagai berikut:
seq(from, to, by)
from, to : angka awal dan akhir atau nilai maksimum dan minimum deret bilangan yang diinginkan. by : interval antar nilai
Misalkan kita akan membuat deret bilangan dari 3 sampai 8 dengan interval antar deret sebesar 0,5. Berikut adalah sintaks yang digunakan:
seq(from=3,to=8,by=0.5)
## [1] 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0
Fungsi rep() dapat digunakan untuk membuat deret dengan nilai berulang. Format fungsi tersebut adalah sebagai berikut:
rep(x, times, each)
x: nilai yang hendak dibuat berulang. times: jumlah pengulangan. each: argumen tambahan yang menentukan jumlah masing-masing elemen vektor akan dicetak.
# cetak angka 5 sebanyak 5 kali
rep(x=5, times=5)
## [1] 5 5 5 5 5
# cetak angka 5 dan 6 sebanyak 3 kali
rep(c(5,6), times=3)
## [1] 5 6 5 6 5 6
# cetak angka 5 dan 6 masing-masing 3 kali
rep(c(5,6), each=3)
## [1] 5 5 5 6 6 6
Deret bilangan acak biasanya banyak digunakan dalam sebuah simulasi. R menyediakan fungsi untuk memproduksi bilangan-bilangan acak tersebut berdasarkan distribusi tertentu. Berikut adalah tabel rangkuman nama distribusi, fungsi, dan argumen yang digunakan:
| Distribusi | Fungsi | Argumen |
|---|---|---|
| Beta | rbeta(n, shape1, shape2, ncp = 0) |
n = jumlah observasi; shape1,shape2 = parameter non-negatif distribusi beta; ncp = non-centrality parameter |
| Binomial | rbinom(n, size, prob`) |
n= jumlah observasi; prob = probabilitas sukses; size = jumlah percobaan |
| Cauchy | rcauchy(n, location = 0, scale = 1) |
n = jumlah observasi; location, scale = parameter lokasi dan skala distribusi Cauchy |
| Chi-Square | rchisq(n, df, ncp = 0) |
n = jumlah observasi; df = derajat kebebasan; ncp = non-centrality parameter |
| Exponensial | rexp(n, rate = 1) |
n = jumlah observasi; rate = vektor parameter rate |
| F | rf(n, df1, df2, ncp) |
n = jumlah observasi; df1, df2 = derajat kebebasan; ncp = non-centrality parameter |
| Gamma | rgamma(n, shape, rate = 1, scale = 1/rate) |
n = jumlah observasi; shape, scale = parameter shape dan scale; rate = alternatif lain argumen rate |
| Geometri | rgeom(n, prob) |
n = jumlah observasi; prob = probabilitas sukses |
| Hipergeometri | rhyper(nn, m, n, k) |
nn = jumlah observasi; m = jumlah bola putih dalam wadah; n = jumlah bola hitam dalam wadah; k = jumlah pengambilan |
| Log-normal | `rlnorm(n, meanlog = 0, sdlog = 1) |
n = jumlah observasi; meanlog, sdlog = nilai mean dan simpangan baku dalam skala logaritmik |
| Negatif Binomial | rnbinom(n, size, prob, mu) |
n = jumlah observasi; size = target jumlah percobaan sukses pertama kali; prob = probabilitas sukses; mu = parameterisasi alternatif melalui mean |
| Normal | rnorm(n, mean = 0, sd = 1) |
n = jumlah observasi; mead, sd = nilai mean dan simpangan baku |
| Poisson | rpois(n, lambda) |
n = jumlah observasi; lambda = vektor nilai mean |
| Student t | rt(n, df, ncp) |
n = jumlah observasi; df = derajat kebebasan; ncp = non-centrality parameter |
| Uniform | runif(n, min = 0, max = 1) |
n = jumlah observasi; min, max = nilai maksimum dan minimum distribusi |
| Weibull | rweibull(n, shape, scale = 1) |
n = jumlah observasi; shape, scale = parameter shape dan scale |
Berikut adalah contoh pembuatan vektor menggunakan bilangan acak berdistribusi normal:
x <- 1:6
error <- rnorm(n=1, mean=0, sd=1)
# cetak x + error dengan 3 nilai signifikan
round((x+error), 3)
## [1] 0.317 1.317 2.317 3.317 4.317 5.317