1. OBJEK DI R (MATERI 2)

#assign
a1 <- c(2,4,7,3)
assign("a2",c("2","4","7","3"))
a1
## [1] 2 4 7 3
a2
## [1] "2" "4" "7" "3"
#baris bilangan 
a3 <- seq(1,10,by=0.5) 
a4 <- seq(1,10,length.out=12)
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
##  [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)
a6 <- rep(1:3,3) 
a7 <- rep(1:3,1:3)
a8 <- rep(1:3,rep(2,3))
a9 <- rep(1:3,each=2)
a5
## [1] 1 1 1
a6
## [1] 1 2 3 1 2 3 1 2 3
a7
## [1] 1 2 2 3 3 3
a8
## [1] 1 1 2 2 3 3
a9
## [1] 1 1 2 2 3 3
#karakter berpola 
a10 <- paste("A",1:10,sep="") 
a11 <- paste0("A",1:10) 
a12 <- paste("A",1:10,sep="-") 
a13 <- paste0("A",a8)
a10
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
a11
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
a12
##  [1] "A-1"  "A-2"  "A-3"  "A-4"  "A-5"  "A-6"  "A-7"  "A-8"  "A-9"  "A-10"
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"
#panjang vector
length(a4)
## [1] 12

Latihan 1

Tentukan output syntax berikut :

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

Buatlah syntax agar dihasilkan output vektor sebagai berikut.

xy<-paste(c("X","Y"),1:10,sep="")
xy
##  [1] "X1"  "Y2"  "X3"  "Y4"  "X5"  "Y6"  "X7"  "Y8"  "X9"  "Y10"
angka<-c(1,4,7,10,13,16,19,22,25,28)
angka
##  [1]  1  4  7 10 13 16 19 22 25 28
names(angka)<-xy
names(angka)
##  [1] "X1"  "Y2"  "X3"  "Y4"  "X5"  "Y6"  "X7"  "Y8"  "X9"  "Y10"
angka
##  X1  Y2  X3  Y4  X5  Y6  X7  Y8  X9 Y10 
##   1   4   7  10  13  16  19  22  25  28
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
b5 <- a14 
b5
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
#mengubah objek vector ke matrix
dim(b5)<-c(6,2) 
dim(b5)
## [1] 6 2
#mengggabungkan baris
b6 <- matrix(1:4,2) 
b7 <- matrix(6:9,2)
b8 <- rbind(b6,b7)
b6
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
b7
##      [,1] [,2]
## [1,]    6    8
## [2,]    7    9
b8
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## [3,]    6    8
## [4,]    7    9
#menggabungkan kolom
b9 <- cbind(b7,b6) 
b9
##      [,1] [,2] [,3] [,4]
## [1,]    6    8    1    3
## [2,]    7    9    2    4
#dimensi matriks
dim(b8) 
## [1] 4 2
dim(b9) 
## [1] 2 4
dim(a14) 
## NULL
length(b3)
## [1] 16
#akses 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
#assign
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
#akses array 
c2[,,1,] #lembar 1 dari c2 
##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
c2[,,,2] #buku ke 2 dari c2 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8
c2[,,1,3] #lembar ke 1 buku ke 3 dari c2
## [1]  9 10
a15 <- c("A","B","AB","O") 
a15
## [1] "A"  "B"  "AB" "O"
#skala pengukuran nominal
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"
#akses factor 
d1[2]
## [1] B
## Levels: A AB B O
d4[2:3]
## [1] SMP SMA
## Levels: SD < SMP < SMA
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
a1
## [1] 2 4 7 3
b2
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
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
d2
## [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)
e1
## [[1]]
## [1] 2 4 7 3
## 
## [[2]]
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## 
## [[3]]
## , , 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
## 
## 
## [[4]]
## [1] A  B  AB O 
## Levels: O A B AB
e2
## $vect
## [1] 2 4 7 3
## 
## $mat
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## 
## $array
## , , 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
## 
## 
## $fac
## [1] A  B  AB O 
## Levels: O A B AB
#akses 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"
#assign
a17 <- 11:15 
d5 <- factor(LETTERS[6:10]) 
f1 <- data.frame(d5,a17)
a17
## [1] 11 12 13 14 15
d5
## [1] F G H I J
## Levels: F G H I J
f1
#akses data frame 
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
#mengecek jenis objek : is.___(…) 
is.vector(a7) 
## [1] TRUE
is.matrix(a6)
## [1] FALSE
is.array(b9)
## [1] TRUE
is.factor(d3) 
## [1] TRUE
is.list(e2) 
## [1] TRUE
is.data.frame(f1)
## [1] TRUE
#mengubah jenis objek : dan as.___(…)
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
as.vector(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
as.matrix(a3) 
##       [,1]
##  [1,]  1.0
##  [2,]  1.5
##  [3,]  2.0
##  [4,]  2.5
##  [5,]  3.0
##  [6,]  3.5
##  [7,]  4.0
##  [8,]  4.5
##  [9,]  5.0
## [10,]  5.5
## [11,]  6.0
## [12,]  6.5
## [13,]  7.0
## [14,]  7.5
## [15,]  8.0
## [16,]  8.5
## [17,]  9.0
## [18,]  9.5
## [19,] 10.0
as.array(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
as.factor(a3) 
##  [1] 1   1.5 2   2.5 3   3.5 4   4.5 5   5.5 6   6.5 7   7.5 8   8.5 9   9.5 10 
## Levels: 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
as.list(a3) 
## [[1]]
## [1] 1
## 
## [[2]]
## [1] 1.5
## 
## [[3]]
## [1] 2
## 
## [[4]]
## [1] 2.5
## 
## [[5]]
## [1] 3
## 
## [[6]]
## [1] 3.5
## 
## [[7]]
## [1] 4
## 
## [[8]]
## [1] 4.5
## 
## [[9]]
## [1] 5
## 
## [[10]]
## [1] 5.5
## 
## [[11]]
## [1] 6
## 
## [[12]]
## [1] 6.5
## 
## [[13]]
## [1] 7
## 
## [[14]]
## [1] 7.5
## 
## [[15]]
## [1] 8
## 
## [[16]]
## [1] 8.5
## 
## [[17]]
## [1] 9
## 
## [[18]]
## [1] 9.5
## 
## [[19]]
## [1] 10
as.data.frame(a3)

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="")
Kel<-rep(1:3,4)
Resp<-seq(1,23,by=2)
data1<-data.frame(Perl,Kel,Resp)
Perl
##  [1] "P1" "P1" "P1" "P2" "P2" "P2" "P3" "P3" "P3" "P4" "P4" "P4"
Kel
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
Resp
##  [1]  1  3  5  7  9 11 13 15 17 19 21 23
data1

2. MANAJEMEN DATA FRAME (MATERI 3)

Latihan 1

Pada data1, buatlah peubah ‘baru1’ yang berisi nilai dari 12 sampai 1 secara berurutan

#menambah peubah baru/kolom pada data frame
data1$baru1<-12:1
data1

Latihan 2

Dari data1 tersebut ambillah yang termasuk kelompok 1

#subsetting data 
indeks1<-data1$Kel==1
indeks1
##  [1]  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
data2<-data1[indeks1,]
data2

Latihan 3

Dari data1 tersebut ambillah yang termasuk kelompok 1 atau perlakuan P2

#subsetting data
indeks2<-data1$Kel==1 | data1$Perl=="P2"
indeks2
##  [1]  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
data3<-data1[indeks2,]
data3

Latihan 4

Dari data1 tersebut ambillah amatan yang responnya berupa bilangan prima

#subsetting data
indeks3<-data1$Resp %in% c(2,3,5,7,11,13,17,19,23)
data4<-data1[indeks3,]
data4

Latihan 5

Urutkan data1 tersebut berdasarkan kelompok secara ascending

#sorting data : order(…), sort(…), rev(…), unique(…)
indeks4<-order(data1$Kel)
data5<-data1[indeks4,]
data5

Latihan 6

Urutkan data1 tersebut berdasarkan kelompok dan respon secara descending

#sorting data
indeks5<-order(data1$Kel,data1$Resp,decreasing=TRUE)
data6<-data1[indeks5,]
data6

Latihan 7

Urutkan data1 tersebut berdasarkan kelompok secara ascending dan respon secara descending

#sorting data
indeks6<-order(data1$Resp,decreasing = TRUE) #berdasarkan respon, descending
data7<-data1[indeks6,] 
indeks7<-order(data7$Kel) #berdasarkan kelompok, ascending
data8<-data7[indeks7,]
data8
#sorting data
data8$Resp
##  [1] 19 13  7  1 21 15  9  3 23 17 11  5
sort(data8$Resp) 
##  [1]  1  3  5  7  9 11 13 15 17 19 21 23
rev(data8$Resp)
##  [1]  5 11 17 23  3  9 15 21  1  7 13 19
order(data8$Resp) 
##  [1]  4  8 12  3  7 11  2  6 10  1  5  9
rank(data8$Resp)
##  [1] 10  7  4  1 11  8  5  2 12  9  6  3
data8$Resp>10
##  [1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE
which(data8$Resp>10)
## [1]  1  2  5  6  9 10 11
data8$Resp[data8$Resp>10]
## [1] 19 13 21 15 23 17 11
data8$Resp[which(data8$Resp>10)]
## [1] 19 13 21 15 23 17 11

Latihan 8

Lakukanlah recoding pada data8 untuk variabel respon dengan kondisi jika respon<15 maka Code = 1, selainnya Code = 0

#recoding data
#dengan logical
data8$Code1<-0*(data8$Resp>=15)+1*(data8$Resp<15)
data8$Code1
##  [1] 0 1 1 1 0 0 1 1 0 0 1 1
data8
#dengan fungsi ifelse 
data8$Code2<-ifelse(data8$Resp<15,1,0)
data8$Code2
##  [1] 0 1 1 1 0 0 1 1 0 0 1 1
data8
#dengan fungsi recode 
library(car)
## Loading required package: carData
data8$Code3<-recode(data8$Resp,'1:14=1;else=0')

data8$Code3
##  [1] 0 1 1 1 0 0 1 1 0 0 1 1
data8

Latihan 9

Gabungkanlah data1 dengan tabel1 berdasarkan peubah pertamanya.

#Merging Data : rbind(…), cbind(…), atau lebih mudah dengan merge(…)

tabel1<-data.frame(Tr=c("P4","P2","P5"),k1=c(50,100,200))
tabel1
data9<-merge(data1, tabel1, by.x=1, by.y=1, all=FALSE)
data9
data10<-merge(data1, tabel1, by.x="Perl", by.y="Tr", all=TRUE)
data10

Latihan 10

Ubahlah data1 menjadi data dengan setiap barisnya merupakan masing-masing perlakuan.

#reshaping data
#long to wide
data11<-reshape(data1[,-4],idvar="Perl",timevar = "Kel",direction="wide")
data11
#wide to long
data12<-reshape(data11,idvar="Perl",timevar="Kel",
                direction="long")
data12

Eksplorasi

matrix(1:10,2,5,byrow= TRUE) #baris=2, kolom=5, diurut berdasarkan baris terlebih dahulu
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
matrix(1:10,2,5,byrow= FALSE) #baris=2, kolom=5, diurut berdasarkan kolom terlebih dahulu
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    3    5    7    9
## [2,]    2    4    6    8   10
#membuat matriks dengan elemen yang sama semua
matrix(data=0,3,4) #elemen 0 semua
##      [,1] [,2] [,3] [,4]
## [1,]    0    0    0    0
## [2,]    0    0    0    0
## [3,]    0    0    0    0
matrix(data=25,2,3) #elemen 25 semua 
##      [,1] [,2] [,3]
## [1,]   25   25   25
## [2,]   25   25   25
A<-matrix(c(4,3,5,1,7,2),nrow=2,ncol=3)
A
##      [,1] [,2] [,3]
## [1,]    4    5    7
## [2,]    3    1    2
is.matrix(A) #mengecek apakah A matrix atau bukan
## [1] TRUE
is.list(A)   #mengecek apakah A list atau bukan
## [1] FALSE
exam_data = data.frame(
name = c('Anastasia', 'Joe', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew',
         'Laura', 'Kevin', 'Jonas'),
score = c(12.5, 9, 16.5, 12, 9, 20, 14.5, 13.5, 8, 19),
attempts = c(1, 3, 2, 3, 2, 3, 1, 1, 2, 1),
qualify = c('yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes')
)
exam_data

#menambah kolom "country" 
exam_data$country = c("USA","USA","USA","USA","USA","USA","USA","USA","USA","USA")
print(exam_data)
##         name score attempts qualify country
## 1  Anastasia  12.5        1     yes     USA
## 2        Joe   9.0        3      no     USA
## 3  Katherine  16.5        2     yes     USA
## 4      James  12.0        3      no     USA
## 5      Emily   9.0        2      no     USA
## 6    Michael  20.0        3     yes     USA
## 7    Matthew  14.5        1     yes     USA
## 8      Laura  13.5        1      no     USA
## 9      Kevin   8.0        2      no     USA
## 10     Jonas  19.0        1     yes     USA
#mendrop kolom "name" dan "qualify"
exam_data1<-subset(exam_data, select=-c(name,qualify))
exam_data1
#mendrop baris 1,3,6
exam_data2<-exam_data[-c(1,3,6),]
exam_data2