Laporan Praktikum 2 - OBJEK DI R

A. Dasar-Dasar R

Pada Dasar-Dasar R ini dipelajari beberapa hal, yaitu :

A.1 Assignment

Secara umum, untuk memasukkan suatu nilai ke suatu variabel menggunakan menggunakan <-

A<-99
A
## [1] 99
B=99
B
## [1] 99
99->C
C
## [1] 99

Dari 3 tampilan di atas diketahui bahwa <-,=, dan -> memiliki fungsi yang sama dalam assignment. Jadi, A<-99, A=99, 99->A memiliki maksud yang sama.

A.2 Case Sensitive

Dalam R, perbedaan huruf kapital dan huruf kecil, sehingga A<-5 berbeda dengan a<-10, sebagaimana ditunjukkan pada kode berikut ini.

A<-5
a<-10
A
## [1] 5
a
## [1] 10

A.3 Penamaan Objek

  1. Diawali huruf (A-Z atau a-z) atau titik (.)
  2. Tidak menggunakan spasi ataupun karakter spesial (!, @, #, dan seterusnya)
  3. Tidak menggunakan atau menghindari kata yang sudah digunakan oleh R (NULL, TRUE, FALSE, q, c, t, sin, cos, dan lain lain)

A.4 Packages

Packages menurut Datacamp, adalah

R packages are collections of functions and data sets developed by the community. They increase the power of R by improving existing base R functionalities, or by adding new ones

Sebagaimana ditampilkan pada RDocumentation, sampai saat ini (Jum’at 25 September 2020 pukul 14.25 WIB) ada 20.568 Package R yang tersebar pada CRAN, Bioconductor dan Github.

A.5 Rstudio

Berdasarkan Wikipedia, adalah

RStudio is an integrated development environment (IDE) for R, a programming language for statistical computing and graphics. It is available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs on a remote server and allows accessing RStudio using a web browser.

B. Objek DI R

Objek-objek yang ada di R, antara lain Vector, Matrix, Array, Factor, List, Data Frame.

B.1 Vector

Berikut ini adalah perintah untuk Vector

c(…), seq(…), rep(…), paste(…)

Berikut sebagai contoh :

#Assign Dasar 1
a1 <- c(2,4,7,3)
a1
## [1] 2 4 7 3
#Assign Dasar 2
assign("a2",c("2","4","7","3"))
a2
## [1] "2" "4" "7" "3"
#Baris Bilangan 1
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
#Baris Bilangan 2
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 1
a5 <- rep(1,3)
a5
## [1] 1 1 1
#Bilangan Berulang 2
a6 <- rep(1:3,3)
a6
## [1] 1 2 3 1 2 3 1 2 3
#Bilangan Berulang 3
a7 <- rep(1:3,1:3)
a7
## [1] 1 2 2 3 3 3
#Bilangan Berulang 4
a8 <- rep(1:3,rep(2,3))
a8
## [1] 1 1 2 2 3 3
#Bilangan Berulang 5
a9 <- rep(1:3,each=2)
a9
## [1] 1 1 2 2 3 3
#Karakter Berpola 1
a10 <- paste("A",1:10,sep="")
a10
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
#Karakter Berpola 2
a11 <- paste0("A",1:10)
a11
##  [1] "A1"  "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9"  "A10"
#Karakter Berpola 3
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"
#Karakter Berpola 4
a13 <- paste0("A",a8)
a13
## [1] "A1" "A1" "A2" "A2" "A3" "A3"
#Karakter Berpola 5
a14 <- paste("A",a8)
a14
## [1] "A 1" "A 1" "A 2" "A 2" "A 3" "A 3"
#Akses Vector 1
a2[3]
## [1] "7"
#Akses Vector 2
a3[10:15]
## [1] 5.5 6.0 6.5 7.0 7.5 8.0
#Akses Vector 3
a10[c(4,7,9)]
## [1] "A4" "A7" "A9"
#Akses Vector 4
a13[-c(1:2)]
## [1] "A2" "A2" "A3" "A3"
#Akses Vector 5
length(a4)
## [1] 12
#Latihan 1
#Tentukan output syntax program 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:
#X1  Y2  X3  Y4  X5  Y6  X7  Y8  X9 Y10
#1   4   7  10  13  16  19  22  25  28
lat2.1<-c("X", "Y")
lat2.1<-rep(lat2.1,5)
lat2.2<-rep(1:10)
lat2.3<-seq(1,28,by=3)
lat2.4<-paste0(lat2.1,lat2.2)
lat2.4<-factor(lat2.4)
factor(paste0(rep(c("X","Y"),5),1:10))
##  [1] X1  Y2  X3  Y4  X5  Y6  X7  Y8  X9  Y10
## Levels: X1 X3 X5 X7 X9 Y10 Y2 Y4 Y6 Y8
seq(1,28,by=3)
##  [1]  1  4  7 10 13 16 19 22 25 28

B2. Matrix

Berikut ini adalah perintah untuk Matrix

matrix(…,m,n), dim(vector)<-c(m,n),rbind(…),cbind(…) 

Berikut sebagai contoh :

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
#merubah objek vector ke matrix
dim(b5)<-c(6,2)
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
#gabung baris
b8 <- rbind(b6,b7)
b8
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## [3,]    6    8
## [4,]    7    9
#gabung kolom
b9 <- cbind(b7,b6)
b9
##      [,1] [,2] [,3] [,4]
## [1,]    6    8    1    3
## [2,]    7    9    2    4
dim(b8)
## [1] 4 2
dim(b9)
## [1] 2 4
dim(a14)
## NULL
length(b3)
## [1] 16
#Akses Matrix 1
b2
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
#Akses Matrix 2
b2[2,3]
## [1] 7
#Akses Matrix 3
b2[2,2:4]
## [1] 6 7 8
#Akses Matrix 4
b2[1:2,]
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
#Akses Matrix 5
b2[c(1,3),-2]
##      [,1] [,2] [,3]
## [1,]    1    3    4
## [2,]    9   11   12
#Akses Matrix 6
b2[10]
## [1] 4

B.3 Array

Berikut ini adalah perintah untuk Array

array(…,dim=c(…))

Berikut sebagai contoh :

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 1 #lembar 1 dari c2
c2[,,1,] 
##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
#Akses Array 2 #buku ke 2 dari c2
c2[,,,2] 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8
#Akses Array 3 #lembar ke 1 buku ke 3 dari c2
c2[,,1,3] 
## [1]  9 10

B.4 Factor

Berikut ini adalah perintah untuk Factor

factor(…), ordered(…,levels=c(…))

Berikut sebagai contoh :

a15 <- c("A","B","AB","O")
a15
## [1] "A"  "B"  "AB" "O"
d1 <- factor(a15) #Skala pengukuran nominal
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"
d3 <- ordered(a16) #skala pengukuran ordinal 
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 1
d1[2]
## [1] B
## Levels: A AB B O
#Akses factor 2
d4[2:3]
## [1] SMP SMA
## Levels: SD < SMP < SMA

B.5 List

Berikut ini adalah perintah untuk List

list(…)

Berikut sebagai contoh :

e1 <- list(a1,b2,c1,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 <- list(vect=a1,mat=b2,array=c1,fac=d2)
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 1
e1[[1]]
## [1] 2 4 7 3
#Akses List 2
e2$fac
## [1] A  B  AB O 
## Levels: O A B AB
#Akses List 3
e2[2]
## $mat
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
#Akses List 4
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
#Akses List 5
dim(e2)
## NULL
#Akses List 6
length(e2)
## [1] 4
#Akses List 7
names(e2)
## [1] "vect"  "mat"   "array" "fac"

B.6 Data Frame

Berikut ini adalah perintah untuk Data Frame

data.frame(…)

Berikut sebagai contoh :

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
##   d5 a17
## 1  F  11
## 2  G  12
## 3  H  13
## 4  I  14
## 5  J  15
#Akses Data Frame 1
f1[1,2]
## [1] 11
#Akses Data Frame 2
f1[3,]
##   d5 a17
## 3  H  13
#Akses Data Frame 3
f1$d5
## [1] F G H I J
## Levels: F G H I J
#Akses Data Frame 4
f1[,"a17"]
## [1] 11 12 13 14 15
#Akses Data Frame 5
colnames(f1)
## [1] "d5"  "a17"
#Akses Data Frame 6
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
#Akses Data Frame 7
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
#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!
#> data1
#Perl Kel Resp
#1    P1   1    1
#2    P1   2    3
#3    P1   3    5
#4    P2   1    7
#5    P2   2    9
#6    P2   3   11
#7    P3   1   13
#8    P3   2   15
#9    P3   3   17
#10   P4   1   19
#11   P4   2   21
#12   P4   3   23
#Jawaban Latihan 3
Perl<-paste0("P", rep(1:4,each=3))
Perl
##  [1] "P1" "P1" "P1" "P2" "P2" "P2" "P3" "P3" "P3" "P4" "P4" "P4"
Kel<-factor(rep(1:3,4))
Kel
##  [1] 1 2 3 1 2 3 1 2 3 1 2 3
## Levels: 1 2 3
Resp<-seq(1,23,by=2)
data1<-data.frame(Perl,Kel,Resp)
data1
##    Perl Kel Resp
## 1    P1   1    1
## 2    P1   2    3
## 3    P1   3    5
## 4    P2   1    7
## 5    P2   2    9
## 6    P2   3   11
## 7    P3   1   13
## 8    P3   2   15
## 9    P3   3   17
## 10   P4   1   19
## 11   P4   2   21
## 12   P4   3   23

Laporan Praktikum 3 - MANAJEMEN DATA FRAME (Data Wrangling/Munging)

A. Membuat Peubah baru dalam data frame

Data Frame untuk Data Wrangling adalah data1 pada Pertemuan 2 Latihan 3 Dilakukan seperti membuat vektor (dengan indeks atau operasi seleksi)

namadataframe$namavariabelbaru<-ekspresi

namadataframe[,nomorkolom]<-ekspresi
data1
##    Perl Kel Resp
## 1    P1   1    1
## 2    P1   2    3
## 3    P1   3    5
## 4    P2   1    7
## 5    P2   2    9
## 6    P2   3   11
## 7    P3   1   13
## 8    P3   2   15
## 9    P3   3   17
## 10   P4   1   19
## 11   P4   2   21
## 12   P4   3   23
#LATIHAN 1
# Pada data1, buatlah peubah 'baru1' yang berisi nilai dari 12 sampai 1 secara berurutan
data1$baru1<-12:1
data1
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 8    P3   2   15     5
## 9    P3   3   17     4
## 10   P4   1   19     3
## 11   P4   2   21     2
## 12   P4   3   23     1

B. SubSetting Data

Dilakukan untuk akses sebagian data. Membuat ide logic untuk diterapkan dalam vektor logic yang diinginkan

Fungsi yang digunakan :

==, !=, >, >=, <, <=, %in%, duplicated(…), which(…) , is.na(…), is.null(…), is.numeric(…), dll… 
data1
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 8    P3   2   15     5
## 9    P3   3   17     4
## 10   P4   1   19     3
## 11   P4   2   21     2
## 12   P4   3   23     1
#LATIHAN 2
#Dari data1 tersebut ambillah yang termasuk kelompok 1
indeks1 <- data1$Kel == 1
data2 <- data1[indeks1,]
data2
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 4    P2   1    7     9
## 7    P3   1   13     6
## 10   P4   1   19     3
#Latihan 3
#Dari data1 tersebut ambillah yang termasuk kelompok 1 atau perlakuan P2
indeks2 <- data1$Kel == 1 | data1$Perl == "P2"
data3 <- data1[indeks2,]
data3
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 10   P4   1   19     3
#Latihan 4
#Dari data1 tersebut ambillah amatan yang responnya berupa bilangan prima
indeks3 <- data1$Resp %in% c(2,3,5,7,11,13,17,19,23)
data4 <- data1[indeks3,]
data4
##    Perl Kel Resp baru1
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 6    P2   3   11     7
## 7    P3   1   13     6
## 9    P3   3   17     4
## 10   P4   1   19     3
## 12   P4   3   23     1

C. Sorting Data

Dilakukan untuk mengurutkan data berdasarkan beberapa peubah tertentu. Dilakukan dengan membuat vektor logika untuk melakukan pengurutan data.

Fungsi yang sering digunakan

order(…), sort(…), rev(…), unique(…)
data1
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 8    P3   2   15     5
## 9    P3   3   17     4
## 10   P4   1   19     3
## 11   P4   2   21     2
## 12   P4   3   23     1
#Latihan 5
#Urutkan data1 tersebut berdasarkan kelompok secara ascending
indeks4 <- order(data1$Kel)
data5 <- data1[indeks4,]
data5
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 4    P2   1    7     9
## 7    P3   1   13     6
## 10   P4   1   19     3
## 2    P1   2    3    11
## 5    P2   2    9     8
## 8    P3   2   15     5
## 11   P4   2   21     2
## 3    P1   3    5    10
## 6    P2   3   11     7
## 9    P3   3   17     4
## 12   P4   3   23     1
#Latihan 6
#Urutkan data1 tersebut berdasarkan kelompok dan respon secara descending
indeks5 <- order(data1$Kel, data1$Resp, decreasing=TRUE)
data6 <- data1[indeks5,]
data6
##    Perl Kel Resp baru1
## 12   P4   3   23     1
## 9    P3   3   17     4
## 6    P2   3   11     7
## 3    P1   3    5    10
## 11   P4   2   21     2
## 8    P3   2   15     5
## 5    P2   2    9     8
## 2    P1   2    3    11
## 10   P4   1   19     3
## 7    P3   1   13     6
## 4    P2   1    7     9
## 1    P1   1    1    12
#Latihan 7
#Urutkan data1 tersebut berdasarkan kelompok secara ascending dan respon secara descending
indeks6 <- order(data1$Resp, decreasing=TRUE)
data7 <- data1[indeks6,]
data7
##    Perl Kel Resp baru1
## 12   P4   3   23     1
## 11   P4   2   21     2
## 10   P4   1   19     3
## 9    P3   3   17     4
## 8    P3   2   15     5
## 7    P3   1   13     6
## 6    P2   3   11     7
## 5    P2   2    9     8
## 4    P2   1    7     9
## 3    P1   3    5    10
## 2    P1   2    3    11
## 1    P1   1    1    12
indeks7 <- order(data7$Kel)
data8 <- data7[indeks7,]

#Sorting Data lainnya 1
data8$Resp
##  [1] 19 13  7  1 21 15  9  3 23 17 11  5
#Sorting Data lainnya 2
sort(data8$Resp)
##  [1]  1  3  5  7  9 11 13 15 17 19 21 23
#Sorting Data lainnya 3
rev(data8$Resp)
##  [1]  5 11 17 23  3  9 15 21  1  7 13 19
#Sorting Data lainnya 4
order(data8$Resp)
##  [1]  4  8 12  3  7 11  2  6 10  1  5  9
#Sorting Data lainnya 5
rank(data8$Resp)
##  [1] 10  7  4  1 11  8  5  2 12  9  6  3
#Sorting Data lainnya 6
data8$Resp>10
##  [1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE
#Sorting Data lainnya 7
which(data8$Resp>10)
## [1]  1  2  5  6  9 10 11
#Sorting Data lainnya 8
data8$Resp[data8$Resp>10]
## [1] 19 13 21 15 23 17 11
#Sorting Data lainnya 9
data8$Resp[which(data8$Resp>10)]
## [1] 19 13 21 15 23 17 11

D. Recoding Data

Digunakan untuk membuat nilai baru dari nilai peubah yang sudah ada.

Dapat dilakukan secara logical,

fungsi ifelse(…), dan fungsi recode (…)
#Latihan 8
data8
##    Perl Kel Resp baru1
## 10   P4   1   19     3
## 7    P3   1   13     6
## 4    P2   1    7     9
## 1    P1   1    1    12
## 11   P4   2   21     2
## 8    P3   2   15     5
## 5    P2   2    9     8
## 2    P1   2    3    11
## 12   P4   3   23     1
## 9    P3   3   17     4
## 6    P2   3   11     7
## 3    P1   3    5    10
#Lakukanlah recoding pada data8 untuk variabel respon dengan kondisi jika respon<15 maka Code = 1, selainnya Code = 0

#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
##    Perl Kel Resp baru1 Code1
## 10   P4   1   19     3     0
## 7    P3   1   13     6     1
## 4    P2   1    7     9     1
## 1    P1   1    1    12     1
## 11   P4   2   21     2     0
## 8    P3   2   15     5     0
## 5    P2   2    9     8     1
## 2    P1   2    3    11     1
## 12   P4   3   23     1     0
## 9    P3   3   17     4     0
## 6    P2   3   11     7     1
## 3    P1   3    5    10     1
#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
##    Perl Kel Resp baru1 Code1 Code2
## 10   P4   1   19     3     0     0
## 7    P3   1   13     6     1     1
## 4    P2   1    7     9     1     1
## 1    P1   1    1    12     1     1
## 11   P4   2   21     2     0     0
## 8    P3   2   15     5     0     0
## 5    P2   2    9     8     1     1
## 2    P1   2    3    11     1     1
## 12   P4   3   23     1     0     0
## 9    P3   3   17     4     0     0
## 6    P2   3   11     7     1     1
## 3    P1   3    5    10     1     1
#dengan fungsi recode
library(car)
## Warning: package 'car' was built under R version 4.0.2
## 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
##    Perl Kel Resp baru1 Code1 Code2 Code3
## 10   P4   1   19     3     0     0     0
## 7    P3   1   13     6     1     1     1
## 4    P2   1    7     9     1     1     1
## 1    P1   1    1    12     1     1     1
## 11   P4   2   21     2     0     0     0
## 8    P3   2   15     5     0     0     0
## 5    P2   2    9     8     1     1     1
## 2    P1   2    3    11     1     1     1
## 12   P4   3   23     1     0     0     0
## 9    P3   3   17     4     0     0     0
## 6    P2   3   11     7     1     1     1
## 3    P1   3    5    10     1     1     1

E. Merging Data

Bisa dilakukan dengan rbind(...) atau cbind(...). Lebih mudah dilakukan dengan fungsimerge(…)`

data1
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 8    P3   2   15     5
## 9    P3   3   17     4
## 10   P4   1   19     3
## 11   P4   2   21     2
## 12   P4   3   23     1
Tr<-c("P4","P2","P5")
k1<-c(50,100,200)
tabel1<-data.frame(Tr,k1)
tabel1
##   Tr  k1
## 1 P4  50
## 2 P2 100
## 3 P5 200
#Gabungkanlah data1 dengan tabel1 berdasarkan peubah pertamanya.
data9<-merge(data1, tabel1, by.x=1, by.y=1, all=FALSE)
data9
##   Perl Kel Resp baru1  k1
## 1   P2   3   11     7 100
## 2   P2   1    7     9 100
## 3   P2   2    9     8 100
## 4   P4   1   19     3  50
## 5   P4   2   21     2  50
## 6   P4   3   23     1  50
data10<-merge(data1, tabel1, by.x="Perl",by.y="Tr",all=TRUE)
data10
##    Perl  Kel Resp baru1  k1
## 1    P1    1    1    12  NA
## 2    P1    2    3    11  NA
## 3    P1    3    5    10  NA
## 4    P2    3   11     7 100
## 5    P2    1    7     9 100
## 6    P2    2    9     8 100
## 7    P3    2   15     5  NA
## 8    P3    3   17     4  NA
## 9    P3    1   13     6  NA
## 10   P4    1   19     3  50
## 11   P4    2   21     2  50
## 12   P4    3   23     1  50
## 13   P5 <NA>   NA    NA 200

F. Reshaping Data

Membentuk data baru dengan cara : • Long to wide format • Wide to long format Menggunakan fungsi reshape(…)

data1
##    Perl Kel Resp baru1
## 1    P1   1    1    12
## 2    P1   2    3    11
## 3    P1   3    5    10
## 4    P2   1    7     9
## 5    P2   2    9     8
## 6    P2   3   11     7
## 7    P3   1   13     6
## 8    P3   2   15     5
## 9    P3   3   17     4
## 10   P4   1   19     3
## 11   P4   2   21     2
## 12   P4   3   23     1
#Ubahlah data1 menjadi data dengan setiap barisnya merupakan masing-masing perlakuan
#long to wide
data11 <- reshape(data1[,-4], idvar="Perl", timevar="Kel", direction="wide")
data11
##    Perl Resp.1 Resp.2 Resp.3
## 1    P1      1      3      5
## 4    P2      7      9     11
## 7    P3     13     15     17
## 10   P4     19     21     23
#wide to long
data12 <- reshape(data11, idvar="Perl", timevar="Kel", direction="long")
data12
##      Perl Kel Resp.1
## P1.1   P1   1      1
## P2.1   P2   1      7
## P3.1   P3   1     13
## P4.1   P4   1     19
## P1.2   P1   2      3
## P2.2   P2   2      9
## P3.2   P3   2     15
## P4.2   P4   2     21
## P1.3   P1   3      5
## P2.3   P2   3     11
## P3.3   P3   3     17
## P4.3   P4   3     23