Loop dan Vektorisasi Pada Bahasa Pemrograman R
R memiliki beberapa fitur untuk pemrograman yang mirip dengan bahasa C. Format loop dan
pengecekan kondisi pada R adalah :
for (name
in expr_1) expr_2
if (expr_1) expr_2 else
expr_3
Misal, jika kita memiliki sebuah vektor x, dan tiap elemen
x dengan nilai b, kita ingin memberikan nilai 0 ke variable y, maka programnya
sebagai berikut:
>y <- numeric(length(x))
for
(i in 1:length(x)) if (x[i] ==
b) y[i] <- 0 else y[i] <-
1
Beberapa
instruksi dapat dieksekusi berbarengan jika
diletakkan di dalam
kurung kurawal :
for (i in
1:length(x)) { y[i] <- 0
...
}
if (x[i] ==
b) { y[i] <- 0
...
}
Selain itu, kita dapat mengeksekusi instruksi selagi kondisi true menggunakan while
while (myfun > minimum) {
...
}
Kita juga
dapat menggunakan vektorisasi untuk loop pada
pemberian nilai berulang, misalnya
> z <- numeric(length(x))
> for (i in 1:length(z))
z[i] <- x[i] + y[i]
6.1 Membuat Fungsi Sendiri
Membuat fungsi sendiri
sangat dibutuhkan pada pemrograman
tingkat lanjut R. Biasanya fungsi
kita buat agar program utama kita mampu lakukan
berbagai instruksi dengan baik pada 1
file R. Format penulisan fungsi
adalah sebagai berikut:
name <- function(arg_1, arg_2,
...)
Sebagai contoh, jika kita ingin membuat fungsi bernama
myfun yang membutuhkan 2 parameter untuk plot
data, dan melakukan beberapa aksi, dapat digunakan contoh berikut yang dibuat pada script baru dan
disimpan dengan nama file buatfungsi.r.
myfun <- function(S, F)
{
data <-
read.table(F) plot(data$V1, data$V2,
type="l") title(S)
}
Lalu
memanggil fungsi terebut dapat digunakan perintah di bawah ini:
layout(matrix(1:3, 3, 1))
myfun("swallow",
"Swal.dat") myfun("wren",
"Wrenn.dat") myfun("dunnock", "Dunn.dat")
Contoh
lainnya dengan parameter fungsi yang sudah kita tentukan sebagai
berikut:
ricker <- function(nzero, r, K=1, time=100, from=0, to=time)
{
N <- numeric(time+1)
N[1] <-
nzero
for (i in 1:time)
N[i+1] <- N[i]*exp(r*(1 - N[i]/K))
Time <- 0:time
plot(Time, N, type="l", xlim=c(from, to))
}
Lalu jalankan
fungsi diatas dengan memanggilnya sebagai berikut:
> layout(matrix(1:3, 3, 1))
> ricker(0.1, 1); title("r = 1")
> ricker(0.1, 2); title("r = 2")
> ricker(0.1, 3); title("r = 3")
Gambar 6.1 Contoh grafik
dari hasil pemanggilan fungsi
Dari gambar 6.1 diatas, terlihat
bahwa dengan memiliki kemampuan pemrograman fungsi, program yang dijalankan bs lebih
dinamis dan handal.
Post a Comment for "Loop dan Vektorisasi Pada Bahasa Pemrograman R"