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 numericjika 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
##  [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.

##  [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.

##     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
##   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"
## '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"