Objek di R

Vektor

Assign

a1 <- c(2,4,7,3)
a1
## [1] 2 4 7 3
assign("a2",c("2","4","7","3"))
a2
## [1] "2" "4" "7" "3"

Baris Bilangan

a3 <- seq(1,10,by=0.5)
a3
##  [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0
## [16]  8.5  9.0  9.5 10.0
a4 <- seq(1,10,length.out=12)
a4
##  [1]  1.000000  1.818182  2.636364  3.454545  4.272727  5.090909  5.909091
##  [8]  6.727273  7.545455  8.363636  9.181818 10.000000

Bilangan Berulang

a5 <- rep(1,3)
a5
## [1] 1 1 1
a6 <- rep(1:3,3)
a6
## [1] 1 2 3 1 2 3 1 2 3
a7 <- rep(1:3,1:3)
a7
## [1] 1 2 2 3 3 3
a8 <- rep(1:3,rep(2,3))
a8
## [1] 1 1 2 2 3 3
a9 <- rep(1:3,each=2)
a9
## [1] 1 1 2 2 3 3

Karakter Berpola

a10 <- paste("A",1:10,sep="")
a10
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
a11 <- paste0("A",1:10)
a11
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
a12 <- paste("A",1:10,sep="-")
a12
##  [1] "A-1"  "A-2"  "A-3"  "A-4"  "A-5"  "A-6"  "A-7"  "A-8"  "A-9"  "A-10"
a13 <- paste0("A",a8)
a13
## [1] "A1" "A1" "A2" "A2" "A3" "A3"

Akses Vector

a2[3]
## [1] "7"
a3[10:15]
## [1] 5.5 6.0 6.5 7.0 7.5 8.0
a10[c(4,7,9)]
## [1] "A4" "A7" "A9"
a13[-c(1:2)]
## [1] "A2" "A2" "A3" "A3"
length(a4)
## [1] 12

Latihan 1

c("la","ye")[rep(c(1,2,2,1),times=4)]
##  [1] "la" "ye" "ye" "la" "la" "ye" "ye" "la" "la" "ye" "ye" "la" "la" "ye" "ye"
## [16] "la"
c("la","ye")[rep(rep(1:2,each=3),2)]
##  [1] "la" "la" "la" "ye" "ye" "ye" "la" "la" "la" "ye" "ye" "ye"

Latihan 2

X <- paste(c("X", "Y"),1:10,sep="")
X
##  [1] "X1"  "Y2"  "X3"  "Y4"  "X5"  "Y6"  "X7"  "Y8"  "X9"  "Y10"
Respon <- seq(1,28, by = 3)
Respon
##  [1]  1  4  7 10 13 16 19 22 25 28

Matrix

Mendifinisikan Matrix

a14 <- 1:12
a14
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
b1 <- matrix(a14,3,4)
b1
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
b2 <- matrix(a14,3,4,byrow=TRUE)
b2
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
b3 <- matrix(1:10,4,4)
## Warning in matrix(1:10, 4, 4): data length [10] is not a sub-multiple or
## multiple of the number of rows [4]
b3
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9    3
## [2,]    2    6   10    4
## [3,]    3    7    1    5
## [4,]    4    8    2    6
b4 <- matrix(1:10,4,5)
b4
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    5    9    3    7
## [2,]    2    6   10    4    8
## [3,]    3    7    1    5    9
## [4,]    4    8    2    6   10

Merubah Objek Vector ke Matrix

b5 <- a14
dim(b5)<-c(6,2) 
b5
##      [,1] [,2]
## [1,]    1    7
## [2,]    2    8
## [3,]    3    9
## [4,]    4   10
## [5,]    5   11
## [6,]    6   12

Membuat Matriks dengan definisi n baris

b6 <- matrix(1:4,2)
b6
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
b7 <- matrix(6:9,2)
b7
##      [,1] [,2]
## [1,]    6    8
## [2,]    7    9

Mengabungkan baris

b8 <- rbind(b6,b7)
b8
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## [3,]    6    8
## [4,]    7    9

Mengabungkan kolom

b9 <- cbind(b7,b6) 
b9
##      [,1] [,2] [,3] [,4]
## [1,]    6    8    1    3
## [2,]    7    9    2    4

Melihat Ukuran Matrix

dim(b8)
## [1] 4 2
dim(b9)
## [1] 2 4
dim(a14)
## NULL
length(b3)
## [1] 16

Mengakses matrix

b2
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
b2[2,3]
## [1] 7
b2[2,2:4]
## [1] 6 7 8
b2[1:2,]
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
b2[c(1,3),-2]
##      [,1] [,2] [,3]
## [1,]    1    3    4
## [2,]    9   11   12
b2[10]
## [1] 4

Array

Mendifinisikan Array

c1 <- array(a14,dim=c(2,2,3))
c1
## , , 1
## 
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## 
## , , 2
## 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8
## 
## , , 3
## 
##      [,1] [,2]
## [1,]    9   11
## [2,]   10   12
c2 <- array(a14,dim=c(2,1,2,3))
c2
## , , 1, 1
## 
##      [,1]
## [1,]    1
## [2,]    2
## 
## , , 2, 1
## 
##      [,1]
## [1,]    3
## [2,]    4
## 
## , , 1, 2
## 
##      [,1]
## [1,]    5
## [2,]    6
## 
## , , 2, 2
## 
##      [,1]
## [1,]    7
## [2,]    8
## 
## , , 1, 3
## 
##      [,1]
## [1,]    9
## [2,]   10
## 
## , , 2, 3
## 
##      [,1]
## [1,]   11
## [2,]   12
c3 <- array(a14,dim=c(1,2,4,2))
c3
## , , 1, 1
## 
##      [,1] [,2]
## [1,]    1    2
## 
## , , 2, 1
## 
##      [,1] [,2]
## [1,]    3    4
## 
## , , 3, 1
## 
##      [,1] [,2]
## [1,]    5    6
## 
## , , 4, 1
## 
##      [,1] [,2]
## [1,]    7    8
## 
## , , 1, 2
## 
##      [,1] [,2]
## [1,]    9   10
## 
## , , 2, 2
## 
##      [,1] [,2]
## [1,]   11   12
## 
## , , 3, 2
## 
##      [,1] [,2]
## [1,]    1    2
## 
## , , 4, 2
## 
##      [,1] [,2]
## [1,]    3    4
c4 <- array(a14,dim=c(3,4))
c4
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12

Mengakses Array

#lembar 1 dari c2
c2[,,1,]
##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
#buku ke 2 dari c2
c2[,,,2] 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8
#lembar ke 1 buku ke 3 dari c2
c2[,,1,3] 
## [1]  9 10

Factor

Mendefinsikan Factor

#skala pengukuran nominal
a15 <- c("A","B","AB","O")
a15
## [1] "A"  "B"  "AB" "O"
d1 <- factor(a15) 
d1
## [1] A  B  AB O 
## Levels: A AB B O
d2 <- factor(a15,levels=c("O","A","B","AB"))
d2
## [1] A  B  AB O 
## Levels: O A B AB
levels(d2)
## [1] "O"  "A"  "B"  "AB"
a16 <- c("SD","SMP","SMA")
a16
## [1] "SD"  "SMP" "SMA"
#skala pengukuran ordinal
d3 <- ordered(a16) 
d3
## [1] SD  SMP SMA
## Levels: SD < SMA < SMP
d4 <- ordered(a16, levels=a16)
d4
## [1] SD  SMP SMA
## Levels: SD < SMP < SMA
d5 <- factor(a16, levels=a16, ordered=TRUE)
d5
## [1] SD  SMP SMA
## Levels: SD < SMP < SMA
levels(d4)
## [1] "SD"  "SMP" "SMA"

Mengakses factor

d1[2]
## [1] B
## Levels: A AB B O
d4[2:3]
## [1] SMP SMA
## Levels: SD < SMP < SMA

List

Mendefinisikan List

a1; b2; c1; d2
## [1] 2 4 7 3
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## , , 1
## 
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## 
## , , 2
## 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8
## 
## , , 3
## 
##      [,1] [,2]
## [1,]    9   11
## [2,]   10   12
## [1] A  B  AB O 
## Levels: O A B AB
e1 <- list(a1,b2,c1,d2)
e2 <- list(vect=a1,mat=b2,array=c1,fac=d2)

Mengakses List

e1[[1]]
## [1] 2 4 7 3
e2$fac
## [1] A  B  AB O 
## Levels: O A B AB
e2[2]
## $mat
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
e1[c(2,4)]
## [[1]]
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## 
## [[2]]
## [1] A  B  AB O 
## Levels: O A B AB
dim(e2)
## NULL
length(e2)
## [1] 4
names(e2)
## [1] "vect"  "mat"   "array" "fac"

Data Frame

Mendefinisikan Dataframe

a17 <- 11:15
a17
## [1] 11 12 13 14 15
d5 <- factor(LETTERS[6:10])
d5
## [1] F G H I J
## Levels: F G H I J
f1 <- data.frame(d5,a17)
f1

Mengakses Dataframe

f1[1,2]
## [1] 11
f1[3,]
f1$d5
## [1] F G H I J
## Levels: F G H I J
f1[,"a17"]
## [1] 11 12 13 14 15
colnames(f1)
## [1] "d5"  "a17"
str(f1)
## 'data.frame':    5 obs. of  2 variables:
##  $ d5 : Factor w/ 5 levels "F","G","H","I",..: 1 2 3 4 5
##  $ a17: int  11 12 13 14 15
summary(f1)
##  d5         a17    
##  F:1   Min.   :11  
##  G:1   1st Qu.:12  
##  H:1   Median :13  
##  I:1   Mean   :13  
##  J:1   3rd Qu.:14  
##        Max.   :15

Mengkonfirmasi Jenis Objek Data


Untuk melihat jenis dari objek data dapat menggunakan fungsi berikut :
• is.vector()
• is.matrix()
• is.array()
• is.factor()
• is.list()
• is.data.frame()
is.vector(a1)
## [1] TRUE
is.matrix(b1)
## [1] TRUE
is.array(c1)
## [1] TRUE
is.factor(d1)
## [1] TRUE
is.list(e1)
## [1] TRUE
is.data.frame(f1)
## [1] TRUE

Mengkonfirmasi Jenis Objek Data

Untuk merubah suatu objek data ke objek data lainya yang diperlukan dapat menggunakan fungsi berikut : 
• as.vector()
• as.matrix()
• as.array()
• as.factor()
• as.list()
• as.data.frame()
as.vector(d2)
## [1] "A"  "B"  "AB" "O"
as.matrix(d2)
##      [,1]
## [1,] "A" 
## [2,] "B" 
## [3,] "AB"
## [4,] "O"
as.array(d2)
## [1] A  B  AB O 
## Levels: O A B AB
as.factor(d2)
## [1] A  B  AB O 
## Levels: O A B AB
as.list(d2)
## [[1]]
## [1] A
## Levels: O A B AB
## 
## [[2]]
## [1] B
## Levels: O A B AB
## 
## [[3]]
## [1] AB
## Levels: O A B AB
## 
## [[4]]
## [1] O
## Levels: O A B AB
as.data.frame(d2)

Latihan 3

Seorang peneliti merancang sebuah perancangan percobaan RAKL dengan 4 perlakuan dan 3 kelompok (anggaplah respon percobaan berupa baris bilangan). Bantulah peneliti tersebut untuk membuat raw data seperti output sebagai berikut!
Perl <- paste("P", rep(1:4, each=3), sep = "")
Perl
##  [1] "P1" "P1" "P1" "P2" "P2" "P2" "P3" "P3" "P3" "P4" "P4" "P4"
Kel <- rep(1:3, 4)
Kel
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
Resp <- seq(1,23, by=2)
Resp
##  [1]  1  3  5  7  9 11 13 15 17 19 21 23
data1 <- data.frame(Perl, Kel, Resp)
data1

Pengolahan Objek dan Struktur Kendali

Operasi aljabar sederhana vektor numerik

x1 <- c(2,6,9,5)
x1
## [1] 2 6 9 5
x2 <- 1:4
x2
## [1] 1 2 3 4
x3 <- x1 + 1:2
x3
## [1]  3  8 10  7
x4 <- x1 + 1:3
## Warning in x1 + 1:3: longer object length is not a multiple of shorter object
## length
x4
## [1]  3  8 12  6
x5 <- x1*x2
x5
## [1]  2 12 27 20
#setara x'x
x6 <- x1 %*% x1  
x6
##      [,1]
## [1,]  146
#setara xx'
x7 <- x1 %o% x1  
x7
##      [,1] [,2] [,3] [,4]
## [1,]    4   12   18   10
## [2,]   12   36   54   30
## [3,]   18   54   81   45
## [4,]   10   30   45   25

Operasi dasar vektor karakter

y1 <- c("Institut Pertanian Bogor")
y1
## [1] "Institut Pertanian Bogor"
n1 <- nchar(y1)
n1
## [1] 24
y2 <- c("Adam","Pramesti","Fathi","Ririn")
y2
## [1] "Adam"     "Pramesti" "Fathi"    "Ririn"
n2 <- nchar(y2)
n2
## [1] 4 8 5 5
y3 <- substr(y1,15,18) 
y3
## [1] "nian"
y4 <- substring(y1,15)
y4
## [1] "nian Bogor"
y5 <- substring(y1,4,8)
y5
## [1] "titut"

Operasi dasar matriks

Z1 <- matrix(1:6,2,3)
Z1
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
Z2 <- matrix(1:6,3,2,byrow=T)
Z2
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
## [3,]    5    6
Z3 <- matrix(6:9,2,2)
Z3
##      [,1] [,2]
## [1,]    6    8
## [2,]    7    9
Z4 <- Z1 %*% Z2
Z4
##      [,1] [,2]
## [1,]   35   44
## [2,]   44   56
Z5 <- Z3 * Z4
Z5
##      [,1] [,2]
## [1,]  210  352
## [2,]  308  504
#invers
INVZ <- solve(Z4) 

#identitas
INVZ %*% Z4 
##      [,1]         [,2]
## [1,]    1 2.842171e-14
## [2,]    0 1.000000e+00
h <- c(5,11)
h
## [1]  5 11
#solusi SPL Zp=h
p <- solve(Z4,h) 
p
## [1] -8.500  6.875
#eigen value & eigen vector dr Z4
e <- eigen(Z4) 
e
## eigen() decomposition
## $values
## [1] 90.7354949  0.2645051
## 
## $vectors
##           [,1]       [,2]
## [1,] 0.6196295 -0.7848945
## [2,] 0.7848945  0.6196295
#akses eigen values
e$values 
## [1] 90.7354949  0.2645051
#akses eigen vectors
e[[2]] 
##           [,1]       [,2]
## [1,] 0.6196295 -0.7848945
## [2,] 0.7848945  0.6196295

Struktur Kendali

for

for (i in 1:5) 
  print(i^2)
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25
y=runif(20)
for (i in y) {
if(i<0.5){
print(100*i)
} 
  else print(i/100)
}
## [1] 0.009394539
## [1] 29.31272
## [1] 14.65935
## [1] 0.007485204
## [1] 40.66847
## [1] 0.006261617
## [1] 0.009710735
## [1] 0.005433559
## [1] 17.51551
## [1] 0.00615691
## [1] 0.006573868
## [1] 0.2670769
## [1] 43.41068
## [1] 0.007820979
## [1] 0.009201869
## [1] 24.14625
## [1] 0.009933243
## [1] 0.007723201
## [1] 47.33581
## [1] 48.46751

while

i<-1
while (i<=5) {
print(i^2)
i=i+1
}
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25
z=0
while(z<=10) {
y=runif(20)
z=sum(y)
print(z)
}
## [1] 10.75731

switch

acak <- sample(1:5,1)
acak
## [1] 5
switch(EXPR=acak, "1" = "a", "2" = "z",
"3" = "m", "4" = "h", "5" = "t")
## [1] "t"

apply

Z6 <- matrix(1:25,5,5)
Z6
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    6   11   16   21
## [2,]    2    7   12   17   22
## [3,]    3    8   13   18   23
## [4,]    4    9   14   19   24
## [5,]    5   10   15   20   25
apply(Z6,1,sum)
## [1] 55 60 65 70 75
apply(Z6,2,sd)
## [1] 1.581139 1.581139 1.581139 1.581139 1.581139

Latihan 1

Tentukan hasil dari setiap perintah berikut

a<-0
for(i in 1:5)
{ b<-a+i
print(b)
a<-b
}
## [1] 1
## [1] 3
## [1] 6
## [1] 10
## [1] 15
i<-1
z<-1
while(z<15)
{ y<-z+i
z<-y
print(z)
i<-i+1
}
## [1] 2
## [1] 4
## [1] 7
## [1] 11
## [1] 16
i<-1
m<-2
repeat
{ m<-m+i
print(m)
i<-i+1
if(m>15)
break
}
## [1] 3
## [1] 5
## [1] 8
## [1] 12
## [1] 17