Anda di halaman 1dari 19

Petunjuk Praktikum

PENGGUNAAN PAKET PROGRAM R ( R-STAT )

Oleh : Dr. Adi Setiawan M. Sc

PROGRAM STUDI MATEMATIKA


FAKULTAS SAINS DAN MATEMATIKA
UNIVERSITAS KRISTEN SATYA WACANA
2009
Dalam petunjuk praktikum ini dikenalkan bagaimana menggunakan paket
program R untuk menganalisis data statistika. Untuk menggunakan R dipilih menu
program R sehingga akan muncul prompt > seperti pada contoh berikut ini :
R version 2.5.1 (2007-06-27)
Copyright (C) 2007 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.


You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.


Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or


'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[Previously saved workspace restored]

>

Sesudah selesai menggunakan paket program R untuk keluar digunakan perintah :

> q()

Bila diinginkan untuk membatalkan perintah terakhir maka bias digunakan perintah
CONTROL-C sehingga akan muncul promt > baru.

Bila perintah yang digunakan belum selesai maka R masih akan meminta perintah
tambahan dengan tanda +.

> q( # perintah yang tidak lengkap


+ ) # prompt lanjutan

Dalam R huruf kecil dan huruf besar diinterpretasikan secara berbeda sebagai contoh b
dan B diinterpretasikan secara berbeda. Huruf c tidak boleh digunakan karena
merupakan perintah dasar dari R yang digunakan untuk membuat vektor.

Bila ingin mengetahui penggunaan suatu perintah dapat digunakan perintah help seperti

> help(hist)

yang digunakan untuk mengetahui perintah hist. Untuk memberikan keterangan dan
tanpa mengeksekusi perintah itu digunakan tanda # yang dalam bahasa pascal
digunakan perintah { } atau (* *).

Vektor

1
Struktur data yang paling sederhana dalam R adalah vector. Suatu vector adalah suatu
obyek tunggal yang merupakan barisan bilangan, teks atau symbol logika. Suatu vector
dengan nama x terdiri dari bilangan-bilangan 10, 5, 3, 6 dapat dibuat dengan fungsi c.

> x <- c(10, 5, 3, 6)


>x
[1] 10 5 3 6

Dalam hal ini digunakan symbol pemberian <- yang dalam bahasa Pascal digunakan
tanda := . Sebarang bilangan dianggap sebagai vector dengan panjang 1.

> y <- c(x,0.555,x,x)


>y
[1] 10.000 5.000 3.000 6.000 0.555 10.000 5.000 3.000 6.000 10.000
[11] 5.000 3.000 6.000

Untuk melakukan pembulatan dapat digunakan perintah round dengan memberikan


control berapa banyak decimal yang diperlukan di belakang koma seperti pada contoh
berikut :

> round(y,1)
[1] 10.0 5.0 3.0 6.0 0.6 10.0 5.0 3.0 6.0 10.0 5.0 3.0 6.0

Perhitungan dengan vector dapat digunakan fungsi berikut ini :

>x
[1] 10 5 3 6
> z <- x*x
>z
[1] 100 25 9 36

Simbol yang digunakan dalam perhitungan adalah +, -, *, / sedangkan pangkat


menggunakan perintah ^. Fungsi standard yang digunakan dalam R terdapat pada Tabel
1.

Operasi dua vektor tidak harus mempunyai panjang yang sama seperti contoh berikut
ini :

>x
[1] 10 5 3 6
> a <- sqrt(x) + 1

Tabel 1. Fungsi standard yang digunakan dalam penghitungan

Nama fungsi Operasi


sqrt akar

2
abs nilai mutlak
sin cos tan fungsi trigonometri
asin acos atan fungsi hiperbolik
sinh cosh tanh fungsi invers hiperbolik
asinh acosh atanh fungsi eksponensial and logaritma natural
exp log logaritma dengan basis 10
log10 gamma dan fungsi log-gamma
gamma lgamma pembulatan ke bawah, pembulatan ke atas bagian
floor ceiling trunc bulat
round pembulatan
sign tanda

Hal ini dapat terjadi karena vektor pada suku kedua mempunyai panjang 1. Tetapi bila
dua vector yang tidak sama panjang dijumlahkan (dioperasikan) akan terjadi kesalahan
dan muncul pesan berikut :

> z <- x + y
Warning message:
longer object length
is not a multiple of shorter object length in: x + y
>z

Untuk menyingkat penulisan seringkali dihilangkan tanda ( dan ) sehingga perlu


diperhatikan prioritas pengertian operasi bila dua operasi digunakan secara berututan.
Tabel 2 berikut ini dijelaskan tentang operasi yang digunakan.

Tabel 2. Urutan prioritas operasi R dari tingkat tinggi ke rendah.

Operasi Nama Prioritas


$ Seleksi komponen TINGGI
[ [[ Seleksi koordinat .
^ Transformasi pangkat .
: Barisan .
*/ Perkalian dan pembagian .
+- Penjumlahan dan pengurangan .
< > <= >= == != Perbandingan logika .
! Pengingkaran logika .
& | && || Dan , atau .
<- -> Pemberian RENDAH

Untuk membuat indeks secara cepat dapat digunakan perintah

> index <- 1:20


> index
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Sebaiknya bila digunakan urutan 20:1 akan memberikan indeks menurun. Bila
diinginkan membuat barisan dengan selisih 0,5 digunakan perintah

3
> u <- seq(-3,3,by=0.5)
>u
[1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0

Cara lain untuk membuat vektor yang sama adalah

> u <- seq(-3,3,length=13)


>u
[1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0
> u <- (-6):6/2
>u
[1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0

Fungsi rep dapat digunakan untuk mereplikasi suatu vector. Berikut ini contoh
penggunaan fungsi rep.

> rep(1:4,4)
[1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
> rep(1:4,rep(4,4))
[1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

Vektor logika dan karakter

Di samping koordinat numerik, vektor dapat berisi logika F (FALSE) dan T (TRUE)
atau string karakter. Vektor logika juga dapat dibuat dengan perintah-perintah berikut :

>x
[1] 10 5 3 6
> y <- x>9
>y
[1] TRUE FALSE FALSE FALSE

Perbandingan logika yang digunakan adalah <, <=, >, >= , == dan !=. Sedangkan untuk
operator logika digunakan &, | dan ! yang berturut-turut berarti dan, atau serta
pengingkaran.

> (3<x) & (x<10)


[1] FALSE TRUE FALSE TRUE
> (!y)
[1] FALSE TRUE TRUE TRUE

Perhatikan perintah-perintah berikut ini dan apa yang terjadi :

> sum(x)
> sum(x>9)

Suatu vektor juga dapat berisi karakter seperti pada contoh berikut ini :

> x <- c("row a", "row b", "row c")


>x

4
[1] "row a" "row b" "row c"
> letters[1:3]
[1] "a" "b" "c"
> paste("row",letters[1:3])
[1] "row a" "row b" "row c"

Perhatikan perintah-perintah berikut ini dan apa yang terjadi :

>y
[1] TRUE FALSE FALSE FALSE
> mode(y) <- "numeric"
>y
[1] 1 0 0 0
> mode(y) <- "logical"
>y
[1] TRUE FALSE FALSE FALSE

Bila dimiliki data yang tidak lengkap maka pada program R disediakan simbol NA
(not available) seperti pada contoh berikut :

> x <- c(NA, 1, 4)


>x
[1] NA 1 4
>x+1
[1] NA 2 5
> is.na(x)
[1] TRUE FALSE FALSE

Bila diinginkan menampilkan nilai x untuk indeks ke-i dapat digunakan x[i] dan berikut
ini beberapa contoh yang lain. Perhatikan apa yang terjadi dengan perintah-perintah
tersebut.

> x <- c(10,5,3,6)


>x
[1] 10 5 3 6
> y <- x>9
> x[y]
[1] 10
> x[x>9]
[1] 10
> x[-(1:2)]
[1] 3 6
> x[x<0] <- 0
> y[y<0] <- -y[y<0]
> x <- numeric(5)
>x
[1] 0 0 0 0 0
Fungsi

5
Dalam R dikenal banyak sekali fungsi standard. Di samping itu dapat juga ditulis
fungsi-fungsi sesuai dengan kebutuhan kita. Untuk memanggil fungsi dapat digunakan
perintah berikut ini :

> nama_fungsi(argument_1, argument_2, .)

Di samping itu untuk fungsi yang tidak mempunyai argument dapat dipanggil dengan
menggunakan perintah berikut ini :
> nama_fungsi( )

Bila hanya nama fungsi saja yang dipanggil maka ditmpilkan perintah-perintah yang
mempunyai definisi dari fungsi tersebut. Argumen dapat berupa argument wajib atau
argument optional. Argumen wajib harus diberikan sedangkan argument optional tidak
harus diberikan. Argumen optional dapat ditengarai dengan kontruksi nama_argumen =
nilai. Sebagai contoh :

>seq(-3, 3, length=1000)

Mempunyai argumen optional dengan nama length.

Manipulasi Data

Fungsi

>x
[1] 10 5 3 6
> length(x)
[1] 4
> sum(x)
[1] 24
> prod(x)
[1] 900
> max(x)
[1] 10
> min(x)
[1] 3

masing-masing memberikan hasil panjang vektor x, jumlah, produk, maksimum,


minimum dari koordinat-koordinatnya. Di samping itu juga digunakan perintah :

> sum(x,y)
[1] 96.555
> prod(x,y)
[1] 364135500000
> max(x,y)
[1] 10
> min(x,y)
[1] 0.555

6
Perhatikan penggunaan perintah berikut ini :

> cumsum(rep(1,10))
[1] 1 2 3 4 5 6 7 8 9 10

Untuk mengurutkan data dapat digunakan perintah sort sedangkan perintah order
digunakan untuk menentukan letak dimana data tersebut diurutkan. Perhatikan apa yang
terjadi bila digunakan perintah berikut ini :

> x[order(x)]
[1] 3 5 6 10
> rev(sort(x))
[1] 10 6 5 3
> rev(x)
[1] 6 3 5 10

Fungsi rank digunakan untuk menghitung nomor rank dari vektor x.

> rank(x)
[1] 4 2 1 3

Perintah unique(x) digunakan untuk menghasilkan koordinat-koordinat yang berbeda


dalam vektor x sedangkan untuk melihat apakah koordinat-koordinat yang berbeda
dalam vektor x sedangkan untuk melihat apakah koordinatnya terduplikasi digunakan
perintah duplicate(x). Perhatikan apakah yang terjadi dengan perintah-perintah berikut
ini :

> diff(x)
[1] -5 -2 3
> diff(x,lag=2)
[1] -7 1
> diff(x, lag=1, differences=2)
[1] 3 5

Beberapa fungsi yang digunakan dalam peringkasan data statistika dinyatakan pada
Tabel 3.

Dalam R juga disediakan perhitungan fungsi distribusi, fungsi densitas, fungsi kuantil
dan perintah untuk membangkitkan sampel random. Nama-nama setiap fungsi selalu
menggunakan nama sesuai dengan distribusinya dengan diawali huruf :

p (probability) : fungsi distribusi


d (density) : fungsi densitas
q (quantile) : fungsi kuantil
r (random) : membangkitkan sample random

Tabel 3 . Fungsi-fungsi statistika dalam R

7
Nama Fungsi Operasi
mean(x) Rata-rata
mean(x, trim= ) Rata-rata terpancung (trimmed mean)
median(x) Median
var(x) Variansi, matriks kovariansi
mad(x) Median deviasi absolut
range(x) Vektor(min(x), max(x))
iqr(x) Jangkauan antar kuartil
skewness(x) Kemencengan
kurtosis(x) Kurtosis
quantile(x,prob) Kuantil
stem(x) Stem and leafplot
var(x,y) Covariansi
cor(x,y) Koefisien korelasi
acf(x,plot=F) Koefisien korelasi parsial

Sebagai contoh untuk distribusi normal digunakan perintah :

> pnorm(x,m,s)
> dnorm(x, m,s)
> qnorm(u,m,s)
> rnorm(n, m, s)

Dalam hal ini m dan s argument optional yang harus diberikan untuk distribusi normal
selain distribusi normal standard. Agumen n dalam rnorm berarti ukuran sampel yang
harus diberikan dan x menyatakan domain dari fungsi tersebut. Beberapa fungsi yang
biasa digunakan dalam teori probabilitas dan statistika dinyatakan pada Tabel 4.

Tabel 4. Tabel fungsi probabilitas yang digunakan dalam R.

Kode (dimulai dengan huruf kecil) distribusi parameter defaults


beta Beta Shape1, shape2
binom Binomial Size, prob
cauchy Cauchy Location, scale
chisq Chi-kuadrat Df
exp Eksponensial Rate
f F Df1, df2
gamma Gamma Shape
geom Geometrik Prob
hyper Hipergeometrik M, n, k
lnorm Lognormal Meanlog, sdlog
logis Logistik Location, scale
nbinom Binomial negatif Size, prob
norm Normal Mean, sd
pois Poisson Lambda
stab Stabil Index, skew
t Student t Df
unif Homogen Shape
weibull Weibull M, n
wilcoxon wilcoxon
Fungsi sample digunakan untuk melakukan pengambilan perintah dari populasi yang
diberikan dalam x dengan atau tanpa pengembalian. Di samping itu juga digunakan

8
untuk menghasilkan permutasi. Perhatikan apa yang terjadi dari perintah-perintah
berikut ini :

> sample(x,3)
[1] 6 3 10
> sample(x)
[1] 10 6 5 3
> sample(x,10,replace=T)
[1] 6 3 5 5 5 3 6 10 6 6

Bilangan random dihasilkan dengan menggunakan nilai-nilai yang ada pada vektor
.Random.seed. Perhatikan apa yang terjadi bila digunakan perintah-perintah berikut :

Grafik
Untuk menggambarkan grafik dengan bantuan R terlebih dulu dipanggil window yang
digunakan untuk menggambarkan grafik. Perintah untuk memanggil window adalah

> win.graph()

Sebagian besar perintah yang digunakan untuk menggambarkan grafik menggunakan


kata plot. Perhatikan perintah-perintah berikut ini dan amati apa yang terjadi dengan
perintah tersebut.

> x <- rnorm(50)


> y <- rnorm(50)
> plot(x,y)
> title("Gambar 1")

Pilihan tipe l digunakan untuk menggambar kurva mulus.

u <- seq(0,4*pi,by=0.05)
> v <- sin(u)
> plot(u,v,type="l", ylab="sin")
> title("Gambar 2")

Perintah-perintah lain yang digunakan untuk menggambarkan grafik histogram, boxplot


dan qq-plot adalah sebagai berikut :

> x <- rnorm(50)


> hist(x)
> text(0,5,"Histogram")
> title("Gambar 3")
> boxplot(x, main="Gambar 4", style.bxp="old")
> qqnorm(x)
> title("Gambar 4")

Perhatikan kegunaan perintah-perintah berikut ini :

9
> x <- rnorm(100)
> range(x)
[1] -1.716844 2.496130
> hist(x, xlim=c(-4,4), xlab=" ", prob=T)
> u <- seq(-4,4,by=0.1)
> lines(u, dnorm(u))
> title("Gambar 6")

Di samping itu dalam satu gambar/window dapat dibuat beberapa macam grafik dengan
memberikan perintah berikut ini :

> par(mfrow=c(2,2))

Yaitu digunakan untuk menggambarkan grafik sebanyak 2 2 dalam satu window.


Tabel berikut ini memberikan daftar argumen optional yang digunakan dalam
menggambarkan grafik.

Tabel 5. Tabel daftar argumen dalam menggambar grafik.

Nama Arti
xlab = xlabel Label pada sumbu-x
ylab = ylabel Label pada sumbu-y
xlim=c(l,r) Range pada sumbu x dari 1 sampai dengan r
ylim=c(l,h) Range pada sumbu-y dari1 sampai dengan h
main=title Judul pada bagian atas gambar
sub=subtitle Judul pada bagian bawah gambar
lty=n Tipe garis : n=1, n=2, 3, ... , putus-putus

Perhatikan fungsi-fungsi yang digunakan untuk membuat plot tingkat tinggi.

> x <- rnorm(50)


> y <- rnorm(50)
> plot(x,y,type="l")
> boxplot(x)
> qqnorm(x)
> qqplot(x,y)

dan fungsi-fungsi yang digunakan untuk membuat plot tingkat rendah

> x <- 1:10


> y <- 5 + 2*x + rnorm(10)
> plot(x,y)
> lines(x,y)
> title("title","subtitle")
> text(x,y)
> points(x,y)

Perhatikan perintah berikut dan amati apa yang terjadi :


> x <- rcauchy

10
> y <- runif(20)
> plot(x,y,type="p",main="Gambar 7")
> u <- dnorm(seq(-1,1,0.1), 0,0.5)
> z <- outer(u,u)
> persp(z)
> title("Gambar 8")

List
List adalah suatu vektor dimana komponen-komponennya mempunyai tipe yang
mungkin berbeda. Sebagai contoh suatu list dapat terdiri dari vektor numerik, vektor
karakter, list bagian yang lain (sublist) dan suatu fungsi. Seringkali hasil suatu fungsi
standard seperti lsfit berupa suatu list. Perhatikan contoh berikut ini :
> x <- 1:5
> y <- x + rnorm(5, 0, 0.25)
> z <- lsfit(x,y)
>z
$coefficients
Intercept X
-0.03043427 0.92861917

$residuals
[1] 0.07241504 -0.03093669 -0.04114679 -0.11455651 0.11422495

$intercept
[1] TRUE

$qr
$qt
[1] -6.16131367 2.93655166 -0.07282102 -0.16127321 0.05246578

$qr
Intercept X
[1,] -2.2360680 -6.7082039
[2,] 0.4472136 3.1622777
[3,] 0.4472136 -0.1954395
[4,] 0.4472136 -0.5116673
[5,] 0.4472136 -0.8278950

$qraux
[1] 1.447214 1.120788

$rank
[1] 2

$pivot
[1] 1 2

$tol
[1] 1e-07

attr(,"class")
[1] "qr"

11
Dalam list z ini komponen pertama terdiri dari matriks ( 1 2 ) yaitu intercept dan
gradien garis yang diperoleh dengan metode kuadrat terkecil. Komponen-komponen
dalam list dapat dipilih dengan cara perintah-perintah berikut ini.

> z[[1]]
Intercept X
-0.03043427 0.92861917
> z$residuals
[1] 0.07241504 -0.03093669 -0.04114679 -0.11455651 0.11422495
> z$residuals[4]
[1] -0.1145565

Suatu list dapat juga dibentuk dengan menggunakan perintah list seperti pada contoh
berikut ini :

> x <- 1:5


> y <- list(bilangan=x, yatidak=T)
>y
$bilangan
[1] 1 2 3 4 5

$yatidak
[1] TRUE

> y$yatidak
[1] TRUE

Fungsi names dapat digunakan untuk memanggil nama-nama komponen dalam suatu
list seperti pada contoh berikut ini dan perhatikan apa yang terjadi :

> names(y)
[1] "bilangan" "yatidak"
> names(y) <- c("nomor","dimana")
>y
$nomor
[1] 1 2 3 4 5

$dimana
[1] TRUE

Matriks dan Array


Suatu matriks dapat dibentuk dengan cara berikut ini :

> x <- 1:8


> dim(x) <- c(2,4)
>x
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> x <- matrix(1:8, 2, 4, byrow=F)
>x

12
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8

Matriks juga dapat dibentuk dengan menggabungkan sejumlah vektor seperti pada
contoh berikut ini :

> cbind(c(1,2),c(3,4))
[,1] [,2]
[1,] 1 3
[2,] 2 4

Pada matriks dapat dikenakan operasi-operasi seperti pada contoh berikut ini :

> t(x)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 7 8
> apply(x,1,mean)
[1] 4 5
> apply(x,1,min)
[1] 1 2
> apply(x,2,min)
[1] 1 3 5 7

Perhatikan perintah-perintah berikut ini dan manfaatnya :


x[subcript]

>x
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> x[1,3]
[1] 5
> x[1,]
[1] 1 3 5 7
> x[,-2]
[,1] [,2] [,3]
[1,] 1 5 7
[2,] 2 6 8

Perhatikan apa yang terjadi dengan perintah-perintah berikut ini :

> x[x>5]
[1] 6 7 8
> x>5
[,1] [,2] [,3] [,4]
[1,] FALSE FALSE FALSE TRUE
[2,] FALSE FALSE TRUE TRUE

13
Fungsi-fungsi dasar yang dapat digunakan dalam operasi matriks dinyatakan pada Tabel
. matriks merupakan array berdimensi dua. Operasi-operasi yang dinyatakan dalam
array analog dengan operasi yang digunakan dalam matriks. Di samping itu dalam array
juga digunakan perintah dimnames.

Tabel 5. Tabel fungsi yang digunakan dalam operasi matriks

Nama fungsi Operasi


ncol(x) Banyak kolom matriks x
nrow(x) Banyak baris matriks x
t(x) Transpose matriks x
diag(x) Membuat diagonal matriks dari vektor atau membentuk vektor
diagonal dari suatu matriks
col(x) Matriks dari nomor kolom
row(x) Matriks dari nomor baris
cbind(x) Membentuk kolom-kolom menjadi matriks
rbind(x) Membentuk baris-baris menjadi matriks
apply(x,1,function) Menggunakan function pada baris
apply(x,2,function) Menggunakan function pada kolom
%*% Perkalian dua matriks
solve(x) Invers matriks x
solve(A,b) Penyelesaian sistem persamaan Ax=b
backsolve(x) Penyelesaian sistem persamaan Ax = b
eigen(x) Eigen value matriks x
chol(x), choleski(x) Dekomposisi choleski
qr(x) Dekomposisi Q-r
svd(x) Single value decomposition
cancor(x,y) Korelasi kanonik
var(x) Matriks kovariansi dari kolom

Data-Frames

Elemen-elemen dalam suatu matriks mempunyai mode yang sama seperti


numerik, karakter atau logika. Dalam data.frame secara esensi sama dengan matriks
tapi modenya boleh berbeda. Untuk membuat data.frame dapat digunakan perintah-
perintah berikut ini :

> x <- c("M", "V", "V")


> y <- c(1.79, 1.61, 0.80)
> z <- c(T,F,T)
> data.frame(x,y,z)
x y z
1 M 1.79 TRUE
2 V 1.61 FALSE
3 V 0.80 TRUE

14
Untuk menginputkan data dapat digunakan perintah scan seperti pada perintah berikut
ini :

> x <- scan()


1: 1 2.5 3.14159
4:
Read 3 items
>x
[1] 1.00000 2.50000 3.14159

Input ditutup dengan memberikan perintah ENTER atau CONTROL-D pada baris
terakhir.

Fungsi (function) dan Penulisannya

Paket program R dapat dipergunakan untuk menuliskan fungsi sesuai yang


diperlukan. Suatu fungsi didefinisikan sebagai :

> namafunction(arg1, arg2, .)

Sebagai contoh fungsi yang sederhana adalah seperti berikut ini :

> sdev <- function(x) sqrt(var(x))

Fungsi yang lebih kompleks adalah seperti berikut ini :

> kurtosis <- function(x)


+{
+ momen4 <- sum((x-mean(x))^4)/(length(x)-1)
+ momen2 <- var(x)
+ momen4/(momen2)^2
+}

Untuk mengurangi kesalahan suatu fungsi yang panjang dapat ditulis terlebih
dahulu pada paket programme Notepad. Kemudian di copy dan paste pada R. Argumen
suatu fngsi dapat dibuat default dengan mengkonstruksikan sebagai arg=nilai
defaultnya. Berikut ini diberikan contoh sederhana untuk argument dengan nilai default
yang diberikan :

> pangkat <- function(x, k=2) x^k

Argumen dari suatu fungsi dapat berupa fungsi juga seperti pada contoh berikut ini :

> rdistribusi <- function(n,qdistribusi)


+{
+ u <- runif(n)
+ qdistribusi(u)

15
+}
> rdistribusi(10,qnorm)
[1] 0.45877543 -0.19533434 -0.56265519 -1.05459945 -1.56913622 1.00979365
[7] -0.09536404 0.35138136 -0.88138298 1.34414808

Bila dalam suatu fungsi argument lain juga dipanggil maka argument tersebut dapat
digunakan sebagai argument fungsi baru :

> rdistribusi <- function(n,qdistribusi,mean=0,sdev=1)


+{
+ u <- runif(n)
+ qdistribusi(u,mean,sdev)
+}
> rdistribusi(5,qnorm)
[1] 0.6903357 0.3363833 0.1190270 -0.8405069 0.3977443
> rdistribusi(5,qnorm,4,9)
[1] -0.6533226 8.6679218 3.9715573 11.3001721 0.9985210

Bandingkan dengan perintah berikut ini :

> rdistribusi <- function(n,qdistribusi,...)


+{
+ u <- runif(n)
+ qdistribusi(u,...)
+}
> rdistribusi(5,qnorm)
[1] -1.0455267 1.2971647 0.5127966 -1.3870356 0.3416456
> rdistribusi(5,qnorm,4,9)
[1] -1.7599860 7.2318806 1.0208494 -8.1862164 -0.6134958
> rdistribusi(5,qpois,2)
[1] 0 5 0 1 2

Statemen if dapat digunakan dengan aturan

> if (condition) expression1


> if (condition) expression1 else expression2

Contoh berikut ini gambaran penggunaan if.

> y <- numeric(10)


> x <- runif(10,-1,1)
> if( any(x <= 0) ) y <- log(1+x) else y <- log(x)
>y
[1] 0.1962733 -1.5584267 -0.3828144 -1.9915418 -2.8999708 0.2362400
[7] -0.4633432 0.6365333 -0.8945111 -0.9133094

Bila digunakan untuk operasi loop maka aturan penggunaan for adalah :

> for (nama in nilai-nilai) expression

16
Berikut ini contoh penggunaan for :

> x <- y <- NULL


>x
NULL
> for (i in 1:10) { x <- c(x,i); y <- c(y,0) }
>x
[1] 1 2 3 4 5 6 7 8 9 10
>y
[1] 0 0 0 0 0 0 0 0 0 0

Sebagai pengganti statemen for dapat digunakan statemen while yang mempunyai
aturan penggunaan :

> while (condition) expression

Contoh berikut ini memberikan ilustrasi kapan perintah while digunakan :

> x <- numeric(10)


>x
[1] 0 0 0 0 0 0 0 0 0 0
> i <- 0
> while (i < 10)
+{
+ i <- i + 1
+ x[i] <- i
+}
>x
[1] 1 2 3 4 5 6 7 8 9 10

Bandingkan dengan perintah berikut ini :

> x <- 1:10


>x
[1] 1 2 3 4 5 6 7 8 9 10

Di samping itu dapat juga dipergunakan perintah repeat yang mempunyai aturan
penggunaan :

> repeat
{

}
if (condition) break

}

Gunakan perintah repeat yang hampir sama penggunaannya dengan perintah for dan
while.
****

17
18

Anda mungkin juga menyukai