Dasar R
Oleh: Fida Fariha A
Install Aplikasi
Sebelum memulai praktik menggunakan R, pastikan bahwa aplikasi R telah terinstall di perangkat. Langkah install aplikasi sebagai berikut:
R for Windows 10/11
- Install R pada link R for Windows
- Install RStudio pada link RStudio for Windows
R for Macos 12+
- Install R pada link R for Macos
- Install RStudio pada link RStudio for Macos
Tampilan Awal Aplikasi
Untuk menampilkan halaman kerja, bisa klik kotak 2 lapis di pojok kanan atas, yang berbentuk seperti berikut:
sehingga tampilan akan menjadi seperti gambar di bawah ini:
Kotak merah pada gambar merupakan tempat untuk menuliskan syntax/script sebelum program dijalankan. Untuk menjalankan program, bisa dilakukan dengan cara blok script yang ingin dijalankan lalu klik ctrl + enter atau klik tools Run dibagian atas sebelah kanan kotak merah.
Kotak hitam merupakan console/konsol R. Pada konsol tersebut, script bisa dituliskan dan akan langsung keluar sebuah output/hasil dengan cara klik enter. Script yang ditulis di dalam konsol R, tidak dapat diubah jika telah klik enter. Konsol R diawali tanda >, yang menunjukkan bahwa R siap menerima perintah baru, jika yang muncul tanda +, artinya perintah yang dimasukkan tidak lengkap.
Kotak biru merupakan tempat untuk melihat data apasaja yang tersimpan dalam script yang telah dibuat.
Kotak hijau merupakan tempat untuk melihat plot/grafik yang kita buat, tempat untuk melakukan penginstalan atau pengecekan paket yang dimiliki, serta bantuan.
Catatan: R tidak akan menjalankan perintah untuk teks yang ditulis setelah tanda #. Tanda ini biasanya berguna untuk memberikan komentar atau catatan.
Untuk membuat file baru, bisa klik logo kertas putih dengan tanda tambah berwarna hijau yang berada di pojok kiri atas, lalu pilih R Script, R Markdown, atau sebagainya (sesuaikan dengan kebutuhan). Tampilan seperti gambar berikut:
Perbedaan tampilan R Script dan R Markdown bisa dilihat pada
gambar berikut:
R Script
R Markdown
Lembar kerja dengan R Script dapat dijalankan baris perbaris atau dengan cara blok script yang ingin dijalankan, sedangkan R Markdown, memiliki fitur
chunkyang dapat menjalankan script secara langsung dalamchunkyang sama. Output R Script akan muncul di kotak console (kotak yang berada dibawah script), sedangkan output R Markdown akan muncul di bawahchunk. Perbedaan lokasi output antara R Script dan R Markdown dapat dilihat pada gambar berikut:
Aturan Pemberian Nama
R akan memandang segala hal sebagai objek yang dapat “diberi nama” apapun sesuai yang kita mau, pastinya nama tersebut mudah diingat dan dipahami. Meskipun demikian, terdapat beberapa aturan penamaan objek dalam R yang harus dipenuhi, yaitu:
- Menggunakan kombinasi alfabet
(a-z, A-Z),angka (0-9),titik (.)atauunderscore (_), - Hanya dapat diawali oleh alfabet, titik atau underscore dan tidak boleh diawali dengan angka,
- Tidak mengandung spasi, tab atau karakter khusus seperti
!,@,#, - Sebaiknya tidak menggunakan penamaan atau nilai yang sudah digunakan
oleh R, seperti
c,df,rnormdan lainnya.
R memiliki sifat yang sensitif, sehingga dalam penamaan objek perlu
diperhatikan huruf kapitalnya. karena nilai A akan berbeda
dengan nilai a begitupun dengan aB akan
berbeda dengan Ab. Dalam kasus ini, disarankan untuk
menggunakan penamaan yang lazim dan konsisten ketika membuat sebuah
program dalam R (atau bahasa pemrograman apapun) seperti:
- alllowercase: misal
data - period.separated: misal
data.panen - underscore_separated: misal
data_produksi - lowerCamelCase: misal
dataPanensawit - UpperCamelCase: misal
DataHasilPanen
Note: meskipun diizinkan, penggunaan underscore sebaiknya dihindari karena sedikit sekali yang menerapkannya pada R.
Data
Sebelum melakukan proses input data, perlu dipahami beberapa hal penting seperti tipe data dan struktur data.
Tipe Data
R mempunyai beberapa jenis mode objek dasar, atau disebut sebagai “atomic” class dari objek, yaitu:
- character, misalnya
"halo","mahasiswa","ipb" - numeric, misalnya
10,1.1,1.5e-2 - complex, misalnya
1.2e6+2i - logical, misalnya
T,F,TRUE,FALSE
Objek Angka: Angka dalam R umumnya diperlakukan sebagai objek numerik
(atau angka riil). Artinya, jika data tersebut merupakan data kategori
yang diberi tanda dengan “angka” seperti jenis kelamin 1:
Laki-laki dan 2:Perempuan, maka R akan
menangkap pengkodean tersebut sebagai data numerik, bukan kategorik.
Dalam kasus ini diperlukan sebuah treat untuk merubah data
numerik menjadi data faktor atau dapat dilakukan dengan menambahkan
akhiran L. Misal untuk mendapatkan integer 1 harus
ditulis 1L.
Struktur Data
Terdapat beberapa tipe objek data standar dalam R, yaitu:
- Vector: tipe sederhana dari objek data dalam R di mana setiap elemennya mempunyai mode yang sama
- Factor: vektor dengan anggota/elemennya berupa kategori
- Matrix: vektor yang berdimensi dua yaitu baris dan kolom
- Array: tipe objek yang dapat menyimpan data lebih dari dua dimensi
- Data frame: objek yang menyimpan data dalam bentuk tabular (baris dan kolom)
- List: vektor dengan anggota/elemennya berupa objek. Mode dari elemen list boleh berbeda-beda
Input Data Manual Sesuai Struktur Data
Data dapat di input langsung dalam R tanpa mengambil dari penyimpanan komputer. Proses input data dapat disesuaikan dengan struktur data.
Data Vektor
Banyak cara membuat vector. Beberapa di antaranya adalah menggunakan
perintah c(), seq() dan
rep().
- Fungsi
c()Sebuah vektor dapat dibuat dengan fungsic()di mana setiap elemen dipisahkan oleh tanda koma.
panen <- c(100, 120, 110, 105, 135, 125, 130, 115, 140, 145)
c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J") -> kebun
divisi = c("div 1", "div 1", "div 1", "div 2", "div 2", "div 2", "div 3", "div 3", "div 3", "div 3")
panen## [1] 100 120 110 105 135 125 130 115 140 145
## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J"
## [1] "div 1" "div 1" "div 1" "div 2" "div 2" "div 2" "div 3" "div 3" "div 3"
## [10] "div 3"
Pada contoh tersebut, panen dan kebun
merupakan nama objek, sehingga jika program di jalankan, objek “panen”
dan “kebun” akan tersimpan dalam Environment. Tanda
<- merupakan operator assigment, obj <-
expr berarti masukkan nilai hasil dari operasi di sisi kanan
(expr) ke dalam objek di sisi kiri (obj). Selain dengan operator
<-, kita juga dapat menggunakan operator =
atau ->. Data numerik dapat langsung dimasukkan dengan
tanda , sebagai pemisah dan . sebagai koma
jika dalam pecahan desimal, sedangkan data kategorik penginputan data
harus disertai dengan tanda kutip dua seperti "data".
- Fungsi
seq()Fungsiseq()digunakan untuk membuat vector yang berisi angka berurutan.
## [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
Pada contoh di atas, objek urut dan
urut1 memiliki data yang sama, hal ini menunjukkan
bahwa proses penginputan data urut menggunakan fungsi seq dapat
dilakukan dengan menuliskan seq(from = 1, to = 10) atau
seq(1:10), sedangkan objek langkah, terdapat tambahan
fungsi by, ini menunjukkan bahwa data yang dimasukkan
secara urut akan melangkahi 2 nomor, seperti hasil yang di peroleh yaitu
1, 3, 5, 7, 9.
- Fungsi
rep()Fungsirep()digunakan untuk membuat vector dengan mengulang nilai yang diinginkan.
## [1] 1 1 1 1 1 1 1 1 1 1
- Mengakses Elemen Vektor Elemen pada vector dapat diakses melalui
indeksnya dengan menggunakan operator
[ ].
## [1] 100
## [1] 100 120
Pada contoh di atas, kita mengakses elemen pertama dan elemen kedua
dari objek “panen”. Jika ingin mengakses lebih dari 1, dapat digunakan
fungsi [c()].
Fungsi untuk membuat data vector, yaitu length() dan
class(). Fungsi length() berguna untuk
mengetahui pajang atau banyaknya elemen dari suatu vector sedangkan
class() untuk mengetahuai class atau mode dari suatu
vector.
Data Factor
Faktor digunakan untuk merepresentasikan data kategorik, baik
terurut/ordered maupun tidak terurut/unordered. Faktor dapat dianggap
sebagai vektor di mana setiap elemennya memiliki label. Objek faktor
dapat dibuat dengan fungsi factor().
Untuk mengurutkan sebuah faktor, dapat dilakukan dengan menggunakan
fungsi levels
## [1] 50gr 75gr 100gr 50gr 75gr 100gr 50gr 75gr 100gr 50gr
## Levels: 100gr 50gr 75gr
## [1] 50gr 75gr 100gr 50gr 75gr 100gr 50gr 75gr 100gr 50gr
## Levels: 50gr < 75gr < 100gr
Pada contoh di atas, dapat dilihat bahwa terdapat 3 jenis dosis yang
digunakan, dengan fungsi factor dimasukkan faktor dosis ke
dalam levels, bisa dilakukan secara berurutan atau acak,
dapat disesuaikan dengan banyaknya faktor yang dimiliki. fungsi
ordered berguna untuk mengurutkan dari nilai terkecil
hingga terbesar.
Data Matrix
Matriks merupakan vector yang berdimensi dua yaitu baris dan kolom. Matriks dapat dibuat dengan mengubah dimensi dari suatu vector.
Matriks dapat dibentuk dengan perintah matrix(). Secara
default, matriks dibentuk dengan cara column-wise (byrow =
FALSE), yaitu dengan mengisi kolom pertama terlebih dahulu,
dari atas ke bawah, dilanjutkan kolom berikutnya.
Sebagai contoh, akan dibuat matrix berukuran 3x3 :
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
Pada contoh di atas, fungsi 1:9 untuk mengisi data
matrix secara urut dari angka 1 - 9, karena jumlah data untuk matrix
berukuran 3x3 yaitu 9. Jika ingin membuat matrix berukuran 4x3 maka
jumlah data yang dibutuhkan yaitu 12, sehingga 1:9 bisa
diubah menjadi 1:12 dan seterusnya. Selain itu, bisa
menambahkan argumen byrow = TRUE sehingga akan mengisi
baris pertama terlebih dahulu, mulai dari kiri ke kanan, dilanjutknya ke
baris berikutnya.
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
Matriks dapat dibentuk secara langsung dari vector dengan cara
menambahkan atribut dimensi, yaitu dim(). Cara lain
membentuk matriks adalah dengan penggabungan kolom dengan fungsi
cbind() dan penggabungan baris dengan fungsi
rbind().
- Fungsi
dim()
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 3 5 7 9
## [2,] 2 4 6 8 10
- Fungsi
cbind()
## x y
## [1,] 1 10
## [2,] 2 11
## [3,] 3 12
## [4,] 4 13
- Fungsi
rbind()
## [,1] [,2] [,3] [,4]
## x 1 2 3 4
## y 10 11 12 13
Data Array
Array adalah struktur data yang dapat menampung data multidimensi. Dalam R, jika matriks hanya mempunyai dua dimensi, maka array dapat memiliki lebih dari 2 dimensi.
v1 <- c(5, 10, 15, 20)
v2 <- c(25, 30, 35, 40, 45, 50, 55, 60)
arr <- array(c(v1, v2), dim =c(4,4,3))
arr## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 5 25 45 5
## [2,] 10 30 50 10
## [3,] 15 35 55 15
## [4,] 20 40 60 20
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 25 45 5 25
## [2,] 30 50 10 30
## [3,] 35 55 15 35
## [4,] 40 60 20 40
##
## , , 3
##
## [,1] [,2] [,3] [,4]
## [1,] 45 5 25 45
## [2,] 50 10 30 50
## [3,] 55 15 35 55
## [4,] 60 20 40 60
Untuk mengetahui dimensi dari suatu array, dapat menggunakan fungsi
dim()
## [1] 4 4 3
Dataframe
Baris dalam data frame merepresentasikan pengamatan/observasi, sedangkan kolom mereprentasikan peubah/variabel. Setiap elemen dalam kolom yang sama mempunyai mode yang sama, namun antar kolom bisa mempunyai mode yang berbeda.
Data frame dapat dibuat menggunakan fungsi
data.frame():
## kebun divisi panen
## 1 A div 1 100
## 2 B div 1 120
## 3 C div 1 110
## 4 D div 2 105
## 5 E div 2 135
## 6 F div 2 125
## 7 G div 3 130
## 8 H div 3 115
## 9 I div 3 140
## 10 J div 3 145
datapanen <- data.frame(kebun = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"),
divisi = c("div 1", "div 1", "div 1", "div 2", "div 2", "div 2", "div 3", "div 3", "div 3", "div 3"),
panen = c(100, 120, 110, 105, 135, 125, 130, 115, 140, 145))
datapanen## kebun divisi panen
## 1 A div 1 100
## 2 B div 1 120
## 3 C div 1 110
## 4 D div 2 105
## 5 E div 2 135
## 6 F div 2 125
## 7 G div 3 130
## 8 H div 3 115
## 9 I div 3 140
## 10 J div 3 145
Data List
List merupakan bentuk khusus dari vector yang memungkinkan elemennya bisa berupa objek dengan mode yang berbeda-beda. Elemen-elemen dari list dapat berupa vector, matriks, array, list atau gabungan beberapa struktur data.
List dapat dibuat dengan menggunakan fungsi list()
s <- "A"
v <- c(1:20)
m <- matrix(1:6, nrow = 2, ncol = 3, byrow = TRUE)
df <- data.frame(numbers = c(10, 20, 30, 40),
text = c("a", "b", "c", "a"))
l <- list(s, v, m, df)
l## [[1]]
## [1] "A"
##
## [[2]]
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
##
## [[4]]
## numbers text
## 1 10 a
## 2 20 b
## 3 30 c
## 4 40 a
Input Data dari Penyimpanan
R dapat mengambil file yang sudah tersimpan dengan format
csv, xlsx, txt, shp,
atau sebagainya sesuai kebutuhan.
Data dengan Format xls atau xlsx
Untuk format ini, dibutuhkan package tambahan yaitu
readxl, silahkan install package terlebih dahulu, lalu
jalankan.
## Warning: package 'readxl' was built under R version 4.3.3
Setelah berhasil melakukan install package dan memanggil package,
maka dapat langsung mengambil file yang disimpan dengan fungsi
readxl(). Fungsi yang digunakan, yaitu
readxl::read_xlsx(“Path/NamaFile.xlsx”). Perlu
diperhatikan untuk path merupakan lokasi file
tersimpan, pastikan lokasi penyimpanan benar dan simbol pemisah yang
digunakan adalah / bukan \. Data yang
digunakan pada contoh dapat diunduh di
sini
phone <- readxl::read_xlsx("D:/IPB/STA1512/STA1512/Prak. By Fida/Data Pertemuan 3.xlsx")
head(phone)## # A tibble: 6 × 2
## Phone SAR
## <chr> <dbl>
## 1 Apple iPhone 4S 1.11
## 2 BlackBerry Pearl 8120 1.48
## 3 BlackBerry Tour 9630 1.43
## 4 Cricket TXTM8 1.3
## 5 HP/Palm Centro 1.09
## 6 HTC One V 0.455
Data dengan Format csv
Data dengan format csv dapat dipanggil dengan fungsi
read.csv("Path/NamaFile.csv") tanpa menggunakan package.
Pada fungsi read.csv(), dapat ditambahkan fungsi
sep = "" untuk menjelaskan tanda pisah yang terdapat pada
file csv yang dimiliki. Jika tanda pisah menggunakan tanda
, maka dapt ditulis dengan sep = "," dan
seterusnya. Data yang digunakan pada contoh dapat diunduh di
sini
phone <- read.csv("D:/IPB/STA1512/STA1512/Prak. By Fida/Data Pertemuan 3.csv", sep = ",")
head(phone)## Phone SAR
## 1 Apple iPhone 4S 1.110
## 2 BlackBerry Pearl 8120 1.480
## 3 BlackBerry Tour 9630 1.430
## 4 Cricket TXTM8 1.300
## 5 HP/Palm Centro 1.090
## 6 HTC One V 0.455
Data dengan Format txt
Data dengan format txt dapat dipanggil dengan fungsi
read.delim("Path/NamaFile.csv") tanpa menggunakan package.
Sama halnya dengan fungsi read.csv(), fungsi
read.delim dapat ditambahkan fungsi sep = ""
untuk menjelaskan tanda pisah yang terdapat pada file txt yang dimiliki.
Data yang digunakan pada contoh dapat diunduh di
sini
phone <- read.delim("D:/IPB/STA1512/STA1512/Prak. By Fida/Data Pertemuan 3.txt", sep = ",")
head(phone)## Phone SAR
## 1 Apple iPhone 4S 1.110
## 2 BlackBerry Pearl 8120 1.480
## 3 BlackBerry Tour 9630 1.430
## 4 Cricket TXTM8 1.300
## 5 HP/Palm Centro 1.090
## 6 HTC One V 0.455
Operator Operasi Pada R
Terdapat sejumlah operator operasi yang penting untuk pembaca ketahui, antara lain:
- Operator aritmatika,
- Operator perbandingan, dan
- Operator logika.
Operator aritmatika
Dalam operator aritmatika, ketika tidak ditapkan urutan perhitungan menggunakan tanda kurung, maka R akan secara otomatis akan menghitung terlebih dahulu perkalian atau pembangian.
| Simbol | Keterangan |
|---|---|
+ |
Addition, untuk operasi penjumlahan |
- |
Substraction, untuk operasi pengurangan |
* |
Multiplication, untuk operasi pembagian |
/ |
Division, untuk operasi pembagian |
^ |
Eksponentiation, untuk operasi pemangkatan |
%% |
Modulus, Untuk mencari sisa pembagian |
%/% |
Integer, Untuk mencari bilangan bulat hasil pembagian saja dan tanpa sisa pembagian |
## [1] 10
## [1] 2
## [1] 24
## [1] 1.5
## [1] 1296
## [1] 2
## [1] 1
Operator perbandingan
Operator relasi digunakan untuk membandingkan satu objek dengan objek lainnya.
| Simbol | Keterangan | Deskripsi |
|---|---|---|
== |
Sama Dengan | Bernilai TRUE jika kedua objek bernilai sama |
!= |
Tidak Sama Dengan | Bernilai TRUE jika kedua objek tidak bernilai sama |
> |
Lebih Besar Dari | Bernilai TRUE jika nilai objek kanan lebih besar dari
nilai objek kiri |
< |
Lebih Kecil Dari | Bernilai TRUE jika nilai objek kanan lebih kecil dari
nilai objek kiri |
>= |
Lebih Besar Sama Dengan | Bernilai TRUE jika nilai objek kanan lebih besar atau
sama dengan dari nilai objek kiri |
<= |
Lebih Kecil Sama Dengan | Bernilai TRUE jika nilai objek kanan lebih kecil atau
sama dengan dari nilai objek kiri |
## [1] FALSE
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] FALSE
## [1] TRUE
Operator logika
Operator logika hanya berlaku pada vektor dengan tipe logical,
numeric, atau complex. Semua angka bernilai 1 akan dianggap bernilai
logika TRUE.
| Simbol | Keterangan |
|---|---|
&& |
Operator logika AND |
|| |
Operator logika OR |
! |
Opeartor logika NOT |
& |
Operator logika AND element wise |
| |
Operator logika OR element wise |
## [1] FALSE
## [1] TRUE
## [1] FALSE FALSE TRUE
## [1] FALSE FALSE FALSE
## [1] TRUE TRUE FALSE
Operator
&&Operator&&adalah LogicalANDdan hanya memeriksa elemen pertama dari masing-masing vektor. Karena elemen pertama dari v adalahTRUEdan elemen pertama dari t adalahFALSE, maka hasilnya adalahFALSE.Operator
||Operator||adalah LogicalORdan hanya memeriksa elemen pertama dari masing-masing vektor. Karena elemen pertama dari v adalahTRUE, maka hasilnya adalahTRUE.Operator
!Operator!adalah LogicalNOTyang membalik nilai logika setiap elemen dalam vektor v. Maka hasilnya akan menjadi kebalikan dari setiap elemen di v.Operator
&Operator&adalah Element-wise LogicalANDyang memeriksa setiap elemen dari vektor v dan t satu per satu secara berpasangan (sesuai urutan dari kiri ke kanan).Operator
|Operator|adalah Element-wise LogicalORyang memeriksa setiap elemen dari vektor v dan t satu per satu secara berpasangan (sesuai urutan dari kiri ke kanan).