2 Pengenalan Objek dalam
2.1 Objek/Variable Assignment
Note: output dari R pada dokumen ini diawali dengan tanda ##
Pada bagian pertama ini, kita akan belajar tentang cara untuk mendefinisikan objek/variable dalam R dengan beberapa cara.
1.Menggunakan tanda <-
Note: Perlu diingat bahwa R merupakan program yang case-senstive (dalam hal ini A tidak sama dengan a)
2.Menggunakan tanda =
Note:Untuk menampilkan isi yang tersimpan di dalam objek, cukup menuliskan saja di nama objeknya dan kemudian dijalankan.
3.Menggunakan perintah/fungsi assign
Saat mendefinisikan objek dengan assign maka nama objeknya dituliskan dengan diawali dan diakhiri tanda petik "A"
atau 'A'
.
Kita bisa juga menghapus objek-objek yang sudah kita definisikan.Seperti yang kita sudah ketahui bahwa objek-objek yang ada saat ini dalam R merupakan objek-objek yang bernama a
,A
dan b
. Untuk melihat objek apa saja yang telah di definisikan kita bisa menggunakan fungsi objects()
.
## [1] "a" "A" "b"
Kita bisa lihat bahwa objek-objek yang telah terdefinisi dalam R adalah a
, A
dan b
.
## [1] "a" "b"
Fungsi rm
digunakan untuk menghapus objek tertentu dari R (dalam hal ini objek A). Jika kita ingin menghapus semua object yang telah terdefinisi di R maka fungsi rm(list = objects())
## character(0)
2.2 Tipe data dalam R
Secara umum terdapat 4 tipe data dalam R yaitu numeric
, character
, logical
dan date
. numeric
merupakan tipe data yang berupa angka, character
berupa huruf/angka, logical
berupa TRUE/FALSE
dan date
berupa tanggal. Untuk mengetahui tipe data dalam R dapat digunakan fungsi class
.
## [1] "numeric"
## [1] "integer"
Sintaks diatas menunjukkan bahwa tipe data pada objek b
adalah integer
, yang merupakan bentuk khusus dari tipe data numeric
jika angkanya merupakan bilangan bulat. Pendefinisian integer pada R selalu diakhiri dengan L
dan angka didepanya tidak berbentuk desimal. Selain integer
, tipe data numeric
juga dapat berupa double
(berupa bilangan decimal). Untuk menyakinkan bahwa tipe data integer
dan double
juga merupakan numeric
bisa menggunakan sintaks dibawah ini.
## [1] TRUE
## [1] TRUE
Hasil TRUE
pada keduanya menunjukkan bahwa object a
memiliki tipe data numeric
yang secara khusus berupa double
dan b
juga memiliki tipe data numeric
berupa integer
.
Tipe data character
, bisa dibuat dengan menggunakan tanda petik ""
atau ''
## [1] "nada"
## [1] "character"
## [1] "5"
## [1] "character"
Tipe data logical
, bisa dibuat dengan menggunakan suatu pernyataan yang bernilai benar/salah atau langsung menuliskan TRUE/FALSE
## [1] TRUE
## [1] "logical"
## [1] FALSE
## [1] "logical"
Tipe data logical
, bisa dibuat dengan menggunakan fungsi as.Date
yang diikuti dengan tanggal.
## [1] "2020-11-02"
## [1] "Date"
2.3 Objek Data Standar
R memiliki 6 cara untuk menyimpan data dalam bentuk objek, yaitu vector
,factor
,matrix
, array
, data.frame
, dan list
.
1.Vector
Vector dalam R berisi elemen-element yang memiliki tipe data yang sama.
## [1] TRUE FALSE
## [1] 1 6 10
## [1] 1.0 2.5 4.5
## [1] "these are" "some strings"
Jika kita amati sintaks diatas, untuk membuat vector
dalam R menggunakan fungsi c()
. Tipe vektor di R dapat diketahui dengan menggunakan fungsi typeof
.
## [1] "logical"
## [1] "integer"
## [1] "double"
## [1] "character"
Hal lain yang perlu menjadi catatan, vektor di dalam R tidak sama seperti vektor dalam matematika yang kita kenal. Vector dalam matematika memiliki dimensi \(n\times1\) atau \(1\times n\), sedangkan pada R dimensi ini tidak ada.
## NULL
Vector di R hanya merupakan kumpulan dari beberapa objek yang bertipe data sama, sehingga kita bisa melihat banyaknya objek-objek atau elemen-elemen yang ada di R dengan menggunakan fungsi length
.
## [1] 3
Membuat vektor di R
Selain dengan menggunakan fungsi c()
, terdapat beberapa fungsi lain yang bisa digunakan untuk membuat vektor di R.
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 1 3 5 7 9 11 13 15 17 19
## [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
## [15] 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5
## [29] 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0
#bilangan terurut dengan 0 sampai 1 dengan banyaknya elemen
#sudah ditentukan
x <- seq(0,1,length.out = 20) #20 elemen
x
## [1] 0.00000000 0.05263158 0.10526316 0.15789474 0.21052632 0.26315789
## [7] 0.31578947 0.36842105 0.42105263 0.47368421 0.52631579 0.57894737
## [13] 0.63157895 0.68421053 0.73684211 0.78947368 0.84210526 0.89473684
## [19] 0.94736842 1.00000000
## [1] 20
## [1] 0.00 0.25 0.50 0.75 1.00
## [1] 5
Selain beberapa fungsi diatas, terdapat beberapa fungsi lain yang cukup berguna untuk dipelajari, yaitu fungsi paste
dan rep
.
## [1] 1 1 1
## [1] 1 2 3 1 2 3 1 2 3
## [1] 1 2 2 3 3 3
## [1] 1 1 2 2 3 3
## [1] 1 1 2 2 3 3
Berdasarkan sintaks diatas, menurut kalian apakah kegunaan dari rep
?
## [1] "A 1" "A 2" "A 3" "A 4" "A 5" "A 6" "A 7" "A 8" "A 9" "A 10"
## [1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10"
## [1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10"
## [1] "A-1" "A-2" "A-3" "A-4" "A-5" "A-6" "A-7" "A-8" "A-9" "A-10"
## [1] "A_1" "A_2" "A_3" "A_4" "A_5" "A_6" "A_7" "A_8" "A_9" "A_10"
## [1] "A1" "B2" "A3" "B4" "A5"
Menurut kalian apakah keguanaan dari paste
? apa perbedaanya dengan paste0
? Dapatkah kalian simpulkan?
Mengakses elemen-elemen vektor di R
Mengakses elemen-elemen vektor di R dapat dilakukan dengan menggunakan operator []
setelah nama objek vektor.
## [1] "A4"
## [1] "B2" "C3" "A4" "B5" "C6" "A7"
## [1] "B5" "A10"
## [1] "A1" "C3" "A4" "B5" "C6" "A7" "B8" "C9" "A10"
## [1] "A1" "C3" "B5" "C6" "A7" "B8" "C9" "A10"
2.Factor
Factor merupakan vektor yang dikhususkan untuk menangani data kategorik. Data kategorik biasanya beberapa kategor yang berbeda namun diulang-ulang. Sebagai contoh misalnya saja kita memiliki data jenis kelamin dengan amatan berjumlah 10. Seperti yang kita tahu jenis kelamin hanya berupa "pria"
dan "wanita"
, sehingga 10 amatan itu berisi pria
dan wanita
yang diulang-ulang. Dengan menggunakan factor, kita bisa tahu kategori apa saja yang berada dalam data tersebut dengan mengabaikan pengulanganya.
## [1] "pria" "wanita" "pria" "wanita" "wanita"
## [1] pria wanita pria wanita wanita
## Levels: pria wanita
## [1] "pria" "wanita"
Hasil output diatas menunjukkan bahwa bedanya factor dengan vektor biasa adalah informasi tambahan levels pada factor. Levels inilah yang dapat menampilkan kategori apa saja yang ada dalam object. Sintaks levels
dapat digunakan untuk mengesktrak kategori secara langsung. Selain menggunakan fungsi factor
, fungsi lain yang dapat membuat objek factor
adalah fungsi ordered
. Sintaks ordered digunakan membuat objek factor
dengan mempertimbangkan urutan pada kategorinya.
pendidikan <- c(rep("SD",10),rep("SMP",7),rep("SMA",5),"Magister",
rep("Sarjana",3))
pendidikanFactor <- ordered(pendidikan,levels=c("SD","SMP",
"SMA","Sarjana",
"Magister"))
pendidikanFactor
## [1] SD SD SD SD SD SD SD
## [8] SD SD SD SMP SMP SMP SMP
## [15] SMP SMP SMP SMA SMA SMA SMA
## [22] SMA Magister Sarjana Sarjana Sarjana
## Levels: SD < SMP < SMA < Sarjana < Magister
3.Matrix
Matrix dalam R memiliki dua dimensi yaitu baris dan kolom. Matrix hanya bisa digunakan untuk menyimpan 1 jenis tipe data saja, misalnya numeric
. Pembuatan matrix dapat dilakukan dengan menggunakan perintah matrix
sebagai berikut:
## [,1] [,2]
## [1,] 1 6
## [2,] 2 7
## [3,] 3 8
## [4,] 4 9
## [5,] 5 10
## [,1] [,2]
## [1,] 21 26
## [2,] 22 27
## [3,] 23 28
## [4,] 24 29
## [5,] 25 30
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 21 23 25 27 29 31 33 35 37 39
## [2,] 22 24 26 28 30 32 34 36 38 40
## [,1] [,2]
## [1,] 41 86
## [2,] 45 87
## [3,] 83 91
## [4,] 84 93
## [5,] 85 100
## [,1] [,2]
## [1,] 41 45
## [2,] 83 84
## [3,] 85 86
## [4,] 87 91
## [5,] 93 100
Secara umum fungsi matrix
memiliki 3 argumen utama yaitu isi matrix (biasanya berbentuk vector), jumlah baris dan jumlah kolom. Jumlah baris/kolom dapat ditentukan salah satu yang mengakibatkan ukuran matrix akan menyesuaikan banyaknya isi matrix. Pada matrix
terdapat argumen byrow
yang jika di set TRUE
maka matrix terisi berdasarkan baris. Fungsi dim
bisa digunakan untuk mengetahui ukuran dari matrix di R. Selain itu, fungsi nrow
dan ncol
bisa menampilkan jumlah baris dan jumlah kolom pada matrix
## [1] 5 4
## [1] 5
## [1] 4
Mengakses elemen-elemen matrix di R
Mengakses elemen-elemen matrix di R dapat dilakukan dengan menggunakan operator []
setelah nama objek matrix.
## [,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
## [1] 2
## [1] 7 12 17
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 6 11 16 21
## [2,] 2 7 12 17 22
## [,1] [,2] [,3] [,4]
## [1,] 1 11 16 21
## [2,] 3 13 18 23
## [1] 10
4.Array
Array merupakan perluasan dari matrix dalam hal dimensi. Jika matrix hanya memiliki dua dimensi, array bisa terdiri dari banyak dimensi. Fungsi yang digunakan untuk mendefinisikan array di R adalah fungsi array
.
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
## , , 1
##
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
##
## , , 2
##
## [,1] [,2]
## [1,] 7 10
## [2,] 8 11
## [3,] 9 12
## , , 1, 1
##
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
## [4,] 4 8
##
## , , 2, 1
##
## [,1] [,2]
## [1,] 9 13
## [2,] 10 14
## [3,] 11 15
## [4,] 12 16
##
## , , 1, 2
##
## [,1] [,2]
## [1,] 17 21
## [2,] 18 22
## [3,] 19 23
## [4,] 20 24
##
## , , 2, 2
##
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
## [4,] 4 8
Array tidak banyak digunakan sebagai objek untuk menyimpan data karena cukup rumit. Akses elemen pada array sama seperti matrix yaitu menggunakan []
. Coba lakukan latihan untuk mengakses elemen-elemen pada array diatas.
5.Data Frame
Data Frame merupakan objek data di R yang digunakan untuk menyimpan tipe data. Sama seperti matrix, data frame hanya berdimensi 2 (baris dan kolom). Fungsi yang digunakan untuk membuat data frame adalah data.frame
. Berikut adalah beberapa ilustrasi dalam pembuatan data.frame
.
# Contoh 1
x <- 10:1
y <- -4:5
q <- c("Hockey", "Football", "Baseball", "Curling", "Rugby","Lacrosse", "Basketball", "Tennis", "Cricket", "Soccer")
theDF <- data.frame(x, y, q)
theDF
## x y q
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## first second sports
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
#Contoh 2
perlakuan <- LETTERS[6:10]
respon <- 11:15
dataRancob <- data.frame(perlakuan,respon)
dataRancob
## perlakuan respon
## 1 F 11
## 2 G 12
## 3 H 13
## 4 I 14
## 5 J 15
Fungsi dim
,nrow
dan ncol
bisa digunakan untuk menampilkan jumlah baris dan jumlah kolom pada matrix.
## [1] 10 3
## [1] 3
## [1] 10
Mengakses elemen-elemen data frame di R
Mengakses elemen-elemen data frame di R dapat dilakukan dengan menggunakan operator []
dan $
setelah nama objek. Penggunaan operator []
sama seperti pada matrix yaitu dengan menuliskan baris dan kolom yang ingin diakses. Sementara itu, operator $
digunakan khusus untuk mengakses kolom-kolom pada data frame.
## [1] Hockey
## 10 Levels: Baseball Basketball Cricket Curling Football ... Tennis
## first second sports
## 1 10 -4 Hockey
## 5 6 0 Rugby
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## first sports
## 1 10 Hockey
## 2 9 Football
## 3 8 Baseball
## 4 7 Curling
## 5 6 Rugby
## 6 5 Lacrosse
## 7 4 Basketball
## 8 3 Tennis
## 9 2 Cricket
## 10 1 Soccer
## [1] Hockey Football Baseball Curling Rugby Lacrosse
## [7] Basketball Tennis Cricket Soccer
## 10 Levels: Baseball Basketball Cricket Curling Football ... Tennis
## first sports
## 1 10 Hockey
## 2 9 Football
## 3 8 Baseball
## 4 7 Curling
## 5 6 Rugby
## 6 5 Lacrosse
## 7 4 Basketball
## 8 3 Tennis
## 9 2 Cricket
## 10 1 Soccer
Beberapa fungsi khusus dalam data frame
Fungsi-fungsi dibawah ini merupakan beberapa fungsi yang biasanya digunakan untuk mengolah objek data.frame
## first second sports
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## first second sports
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## first second sports
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## first second sports
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## [1] "first" "second" "sports"
## [1] "first" "second" "sports"
## [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
#mengganti nama kolom
names(theDF) <- c("pertama","kedua","olahraga")
str(theDF) #menampilkan tipe data pada masing-masing kolom
## 'data.frame': 10 obs. of 3 variables:
## $ pertama : int 10 9 8 7 6 5 4 3 2 1
## $ kedua : int -4 -3 -2 -1 0 1 2 3 4 5
## $ olahraga: Factor w/ 10 levels "Baseball","Basketball",..: 6 5 1 4 8 7 2 10 3 9
## pertama kedua olahraga
## Min. : 1.00 Min. :-4.00 Baseball :1
## 1st Qu.: 3.25 1st Qu.:-1.75 Basketball:1
## Median : 5.50 Median : 0.50 Cricket :1
## Mean : 5.50 Mean : 0.50 Curling :1
## 3rd Qu.: 7.75 3rd Qu.: 2.75 Football :1
## Max. :10.00 Max. : 5.00 Hockey :1
## (Other) :4
6.List
List merupakan vector khusus yang dapat menyimpan berbagai macam objek data lain. List bisa dibuat dengan menggunkan fungsi list
seperti berikut.
## [[1]]
## pertama kedua olahraga
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
##
## [[2]]
## [1] 1 2 3 4 5 6 7 8 9 10
## [[1]]
## perlakuan respon
## 1 F 11
## 2 G 12
## 3 H 13
## 4 I 14
## 5 J 15
##
## [[2]]
## [,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
##
## [[3]]
## list()
## [[1]]
## perlakuan respon
## 1 F 11
## 2 G 12
## 3 H 13
## 4 I 14
## 5 J 15
##
## [[2]]
## [,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
##
## [[3]]
## list()
Mengakses elemen-elemen pada list
Operator [[]]
digunakan untuk mengakses elemen-elemen pada list. Operator []
bisa digunakan, namun elemen yang dikembalikan masih berbentuk list.
## pertama kedua olahraga
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## [1] "data.frame"
## [[1]]
## pertama kedua olahraga
## 1 10 -4 Hockey
## 2 9 -3 Football
## 3 8 -2 Baseball
## 4 7 -1 Curling
## 5 6 0 Rugby
## 6 5 1 Lacrosse
## 7 4 2 Basketball
## 8 3 3 Tennis
## 9 2 4 Cricket
## 10 1 5 Soccer
## [1] "list"