Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Pertemuan 8 (BAB 7)

Emir Luthfi (221810266)

11/4/2020

Pertemuan 8

## BAB 7 Pemrograman R
if(1==0){
print(1)
} else {
print(2)
}

## [1] 2

w = 3
if(w < 5){
d = 2
} else {
d = 10
}

x <- 1:10 # Creates sample data


ifelse(x<5 | x>8, x, 0)

## [1] 1 2 3 4 0 0 0 0 9 10

ifelse(x>5, "high", "low")

## [1] "low" "low" "low" "low" "low" "high" "high" "high" "high" "high"

x <- switch(3,
"first",
"second",
"third",
"fourth"
)
x
## [1] "third"

inpt = "mean"
x <- 1:10
switch(inpt,
mean = mean(x),
median = median(x))

## [1] 5.5

h <- seq(from = 1, to = 10)


s <- c() # defenisikan objek "s"
for (i in 1:10){ # Lakukan iterasi sebanyak 10x
s[i] <- h[i]*10 # memasukkan nilai hasil ke objek
}
s

## [1] 10 20 30 40 50 60 70 80 90 100

sqr <- seq(1, 10, by=2)


sqr

## [1] 1 3 5 7 9

res <- NULL ## defenisikan vector hasil


resMat <- matrix(NA, 5, 2) ## defenisikan matrik untuk hasil

for (i in 1:5) {
res[i] <- sqr[i]^2
resMat[i,] <- c(i, sqr[i]^2)
}

x <- 1:20
y <- NULL
for (i in seq(along = x)) {
if(x[i] < 10){
y <- c(y, x[i]-1)
} else {
stop("nilai x harus lebih kecil dari 10")
}
}

## Error in eval(expr, envir, enclos): nilai x harus lebih kecil dari 10

## [1] 0 1 2 3 4 5 6 7 8
## Data Gini Ratio ##
Tahun <- rep(c(2009, 2010, 2011, 2012, 2013), times = 4)
Gini <- c(0.36, 0.36, 0.44, 0.42, 0.433, 0.36, 0.36, 0.41, 0.41, 0.411, 0.32,
0.34, 0.38, 0.38, 0.387, 0.38, 0.41, 0.40, 0.43, 0.439)
Prov <- rep(c("DKI Jakarta","Jawa Barat","Jawa Tengah","DI Yogyakarta"), each
= 5)
DataGini <- data.frame(Prov, Tahun, Gini)
head(DataGini)

## Prov Tahun Gini


## 1 DKI Jakarta 2009 0.360
## 2 DKI Jakarta 2010 0.360
## 3 DKI Jakarta 2011 0.440
## 4 DKI Jakarta 2012 0.420
## 5 DKI Jakarta 2013 0.433
## 6 Jawa Barat 2009 0.360

# mendapatkan rentang nilai untuk sumbu x dan y


xrange <- range(DataGini$Tahun)
yrange <- range(DataGini$Gini)

# Membuat plot kosong #


plot(xrange, yrange, type = "n", xlab = "tahun", ylab = "Gini Ratio")

Prov <- unique(DataGini$Prov)


Prov

## [1] DKI Jakarta Jawa Barat Jawa Tengah DI Yogyakarta


## Levels: DI Yogyakarta DKI Jakarta Jawa Barat Jawa Tengah

## Mengisi plot yang telah dibuat dengan garis dan titik ##


for (i in 1:length(Prov)) {
datai <- DataGini[DataGini$Prov == Prov[i],]
lines(datai$Tahun, datai$Gini, col = i+1, lty = i, lwd = 2, pch = 15+i)
points(datai$Tahun, datai$Gini, col = i+1, pch = 15+i)
}
legend("bottomright", legend = Prov, col = 2:6, pch = 15:21, lty = 1:5, lwd =
2)
z <- 0
while(z < 10){ ## print selama z<10
z <- z + 2 # kenaikan 2
print(z)
}

## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10

sum <- 1
repeat{
sum <- sum + 2;
print(sum);
if(sum > 11)
break;
}

## [1] 3
## [1] 5
## [1] 7
## [1] 9
## [1] 11
## [1] 13

data(cars) ## Menggunakan data yang telah ada di R


head(cars)

## speed dist
## 1 4 2
## 2 4 10
## 3 7 4
## 4 7 22
## 5 8 16
## 6 9 10

# apply dengan menggunakan fungsi yang telah ada


apply(cars, 2, mean)

## speed dist
## 15.40 42.98

## menghitung rata2 per kolom

apply(cars[1:3,], 1, mean) ## Menghitung rata2 per baris

## 1 2 3
## 3.0 7.0 5.5

apply(cars, 2, sd) ## Standard Deviasi per kolom

## speed dist
## 5.287644 25.769377

## Menggunakan fungsi yang kita buat sendiri ##


x <- 1:15
test <- function(x){ # Membuat fungsi
if(x < 10){
x-1
} else {
x/x
}
}

apply(as.matrix(x), 1, test)

## [1] 0 1 2 3 4 5 6 7 8 1 1 1 1 1 1
data("iris")
head(iris)

## Sepal.Length Sepal.Width Petal.Length Petal.Width Species


## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa

# Menghitung rata-rata dari Petal.Width (kolom ke 4) pada setiap species


(kolom ke 5)
tapply(as.vector(iris[,4]), factor(iris[,5]), mean)

## setosa versicolor virginica


## 0.246 1.326 2.026

## Rata2 setiap variable pada setiap spesies


aggregate(iris[,1:4], list(iris$Species), mean)

## Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width


## 1 setosa 5.006 3.428 1.462 0.246
## 2 versicolor 5.936 2.770 4.260 1.326
## 3 virginica 6.588 2.974 5.552 2.026

mylist <- as.list(cars[1:5,]) ## membuat list


mylist

## $speed
## [1] 4 4 7 7 8
##
## $dist
## [1] 2 10 4 22 16

# Menghitung jumlah pada setiap elemen di list mylist d


# Hasilnya berupa list
lapply(mylist, sum)

## $speed
## [1] 30
##
## $dist
## [1] 54

# Menghitung jumlah pada setiap elemen di list mylist d


# hasilnya berupa vector
sapply(mylist, sum)
## speed dist
## 30 54

You might also like