Materi 1 : Pengantar R

Akbar Rizki, S.Stat. M.Si

5 Februari 2021 10.00-11.30 WIB

Pendahuluan

Apa itu R?

R adalah implementasi sebuah komputasi dan pemrograman bahasa statistika

Instalasi

Silahkan ikuti petunjuk pada Video Tutorial

Package R

##  [1] "base"      "compiler"  "datasets"  "graphics"  "grDevices" "grid"     
##  [7] "methods"   "parallel"  "splines"   "stats"     "stats4"    "tcltk"    
## [13] "tools"     "utils"

– Pertemuan I : knitr, xlsx, rio
– Pertemuan II : dpylr, xlsx, rio, car, lmtest
– Pertemuan III & IV : dplyr, ResourceSelection, pscl, InformationValue

install.packages(c("car","dpylr","InformationValue", "knitr", "lmtest", "pscl", "ResourceSelection", "rio", "xlsx"), dependencies=TRUE)

Aturan Dasar di R

Assignment

A<-5 sama dengan A=5 sama dengan 5->A

Case Sensitive

A<-5 berbeda dengan a<-10

Penamaan Objek

Operasi Dasar di R (1) : Menggunakan #

Pada R, syntax pada baris yang didahului oleh # tidak diproses. Oleh sebab itu, # digunakan untuk memberikan keterangan

5 + 5 # Operasi Penambahan 5 + 5
## [1] 10
#5 + 5 --> ini tidak diproses oleh R

Praktek :

Silahkan Ketikkan Operasi Sederhana berikut pada Software R atau RStudio Anda :

5 + 5
5+5
5 +5
# 2 + 5
#2+5

Operasi Dasar di R (2) : Operator: \(a + b\), \(a - b\), \(a\) x \(b\), \(\frac{a}{b}\)

10 + 5          # 10 ditambah 5 = 15
## [1] 15
10 - 5          # 10 dikurangi 5 = 5
## [1] 5
10 * 5          # 10 dikali 5 = 50
## [1] 50
10 / 5          # 10 dibagi 5 = 2
## [1] 2

Operasi Dasar di R (3) : Operator: \(y^x\),\(\sqrt[x]{y}\)

10 ^ 2          # 10 dipangkat 2 = 100
## [1] 100
10 ^ 3          # 10 dipangkat 3 =  1000
## [1] 1000
sqrt(100)       # Akar pangkat 2 dari 100 = 10
## [1] 10
1000^(1/3)      # Akar pangkat 3 dari 1000 = 10, ini sama dengan 1000 pangkat 1/3
## [1] 10

Operasi Dasar di R (4) : Membuat objek sederhana

x <- 6          # Memasukkan nilai 6 ke objek x
x               # Memanggil objek x
## [1] 6
y = 7           # Memasukkan nilai 7 ke y
y               # memanggil objek y
## [1] 7
(a <- 6)        # memasukkan nilai 6 ke a, sekaligus memanggil objek a
## [1] 6
x+y+a+1         # Operasi Penjumlahan pada Objek di R
## [1] 20

Objek di R (1)

Terdapat berbagai macam Objek di R, di antaranya adalah Vector, Matrix, Array, Factor, List, Data Frame

Untuk Pelatihan ini, kita bahas mengenai Vector dan Data Frame. Referensi lebih lanjut : http://adv-r.had.co.nz/Data-structures.html

Vector

a <- c(2,4,7,3)   # Memasukkan barisan nilai 2,4,7,3 ke objek a
a                 # Memanggil objek a
## [1] 2 4 7 3
a[1]              # Memanggil Data Pertama dari Vector a
## [1] 2
a[2:3]            # Memanggil Data 2 dan 3 dari Vector a
## [1] 4 7

Objek di R (2) : Vector

a <- c(2,4,7,3)   # Memasukkan barisan nilai 2,4,7,3 ke objek a
a                 # Memanggil objek a
## [1] 2 4 7 3
a[c(1,4)]         # Memanggil Data 1 dan 4 dari Vector a
## [1] 2 3
a[-1]             # Memanggil Selain Data 1 dari Vector a
## [1] 4 7 3

Objek di R (3) : Membentuk Data Frame

a <- c(2,4,7,3)             # Memasukkan barisan nilai 2,4,7,3 ke objek a
class(a)
## [1] "numeric"
b <- c("w","x","y","z")     # Memasukkan barisan character w,x,y,z ke objek b
class(b)
## [1] "character"
g <- cbind.data.frame(a,b)  # Menggabungkan b dan a secara cbind (column bind) dan menjadi format data frame
class(g)
## [1] "data.frame"
g
##   a b
## 1 2 w
## 2 4 x
## 3 7 y
## 4 3 z

Objek di R (4) : Akses pada Data Frame

g               # Memanggil Objek g
##   a b
## 1 2 w
## 2 4 x
## 3 7 y
## 4 3 z
g[1,]           # Memanggil Baris 1 dari objek g
##   a b
## 1 2 w
g[3:4,]         # Memanggil Baris 2 sampai 3 dari objek g
##   a b
## 3 7 y
## 4 3 z
g[c("1","4"),]  # Memanggil Baris 1 dan 4 dari objek g
##   a b
## 1 2 w
## 4 3 z

Objek di R (5) : Akses pada Data Frame

g               # Memanggil Objek g
##   a b
## 1 2 w
## 2 4 x
## 3 7 y
## 4 3 z
g[-(2:4),]      # Memanggil Selain Baris 2 sampai 4 dari objek g
##   a b
## 1 2 w
g[,1]           # Memanggil Kolom 1 dari objek g
## [1] 2 4 7 3
g[,2]           # Memanggil Kolom 2 dari objek g
## [1] "w" "x" "y" "z"
g[1,2]          # Memanggil Baris 1 Kolom 2 dari objek g
## [1] "w"

Objek di R (5) : Akses Variabel pada Data Frame

g               # Memanggil Objek g
##   a b
## 1 2 w
## 2 4 x
## 3 7 y
## 4 3 z
g$a             # Memanggil Variabel a dari Objek g
## [1] 2 4 7 3
g$b             # Memanggil Variabel b dari Objek g
## [1] "w" "x" "y" "z"
g$a[2]          # Memanggil data ke 2 Variabel a dari Objek g
## [1] 4
g$b[4]          # Memanggil data ke 4 Variabel b dari Objek g
## [1] "z"

Input Data ke dalam R (1)

Terdapat Data berikut :

y x1 x2 x3
137 14 22 14
140 15 41 11
127 13 45 8
105 18 43 2
118 16 29 8

Silahkan Bapak/Ibu

1 membuat folder baru untuk Pelatihan ini, misal E:/Pelatihan,
2 kemudian membuka http://ipb.link/datalatihan
3 mendownload data dengan nama data_01.csv, data_01.sav, data_01.txt, data_01.xlsx, dan disimpan di Folder E:/Pelatihan

Data yang sama terdapat pada Penyimpanan Online ( github ) pada link https://github.com/Nr5D/data.

Input Data ke dalam R (2) : Manual

y x1 x2 x3
137 14 22 14
140 15 41 11
127 13 45 8
105 18 43 2
118 16 29 8

Input Data Manual

y<-c(137,140,127,105,118)
x1<-c(14,15,13,18,16)
x2<-c(22,41,45,43,29)
x3<-c(14,11,8,2,8)
data<-cbind.data.frame(y,x1,x2,x3)
data
##     y x1 x2 x3
## 1 137 14 22 14
## 2 140 15 41 11
## 3 127 13 45  8
## 4 105 18 43  2
## 5 118 16 29  8

Input Data ke Dalam R (3) : Folder Pribadi

Tanpa Set Working Directory / Folder Kerja

data_csv<-read.csv("E:/Pelatihan/data_01.csv", sep=",", header = TRUE)  # Membaca data dari file CSV
data_csv
##     y x1 x2 x3
## 1 137 14 22 14
## 2 140 15 41 11
## 3 127 13 45  8
## 4 105 18 43  2
## 5 118 16 29  8

Dengan Set Working Directory / Folder Kerja

Dengan mengatur folder kerja ini, akan lebih memudahkan.

setwd("E:/Pelatihan")                                                   # Setting Folder Kerja
data_txt<-read.table("data_01.txt", sep="\t", header=TRUE)              # File txt dibaca dengan Fungsi read.table
data_xlsx<-xlsx::read.xlsx("data_01.xlsx", sheetName = "data_01")       # File xlsx dari Microsoft Office dibaca dengan Fungsi read.xlsx dari Package xlsx
data_sav<-rio::import("data_01.sav")                                    # File sav dari SPSS dibaca dengan Fungsi import dari Package rio

Beberapa Komputer, dengan Versi Java yang tidak sesuai dengan versi R, akan mengalami Error ketika menggunakan fungsi read.xlsx dari package xlsx

Tidak sesuai misal Java 32 bit sedangkan R nya 64 bit, sebaiknya dilakukan update java melalui link berikut :
- https://www.java.com/en/download/
- https://www.java.com/en/download/manual.jsp

Input Data ke Dalam R (4) : Data di Internet

Secara prinsip, sama dengan membaca file dari folder pribadi, hanya saja, Alamat Folder diganti dengan direct URL dari file.

idata_csv<-read.csv("https://raw.githubusercontent.com/Nr5D/data/main/data_01.csv", sep=",", header = TRUE)
idata_csv
##     y x1 x2 x3
## 1 137 14 22 14
## 2 140 15 41 11
## 3 127 13 45  8
## 4 105 18 43  2
## 5 118 16 29  8
idata_txt<-read.table("https://raw.githubusercontent.com/Nr5D/data/main/data_01.txt", sep="\t", header=TRUE)
idata_txt
##     y x1 x2 x3
## 1 137 14 22 14
## 2 140 15 41 11
## 3 127 13 45  8
## 4 105 18 43  2
## 5 118 16 29  8

Membaca Data (1)

Dalam membaca data digunakan salah satu dari data yg telah dimasukkan ke sistem R.

dim(data_csv)       # Melihat Dimensi data dari data frame data_csv
## [1] 5 4

Dari output tersebut, tampak bahwa ada 5 (baris) dan 4 (kolom)

str(data_csv)       # Melihat Struktur data dari data frame data_csv
## 'data.frame':    5 obs. of  4 variables:
##  $ y : int  137 140 127 105 118
##  $ x1: int  14 15 13 18 16
##  $ x2: int  22 41 45 43 29
##  $ x3: int  14 11 8 2 8
data_csv            # Memanggil data frame data_csv
##     y x1 x2 x3
## 1 137 14 22 14
## 2 140 15 41 11
## 3 127 13 45  8
## 4 105 18 43  2
## 5 118 16 29  8

Membaca Data (2)

data_csv$y          # Memanggil Variabel y dari data frame data_csv
## [1] 137 140 127 105 118
data_csv[,-1]       # Memanggil Variabel selain Variabel Pertama dari data frame data_csv
##   x1 x2 x3
## 1 14 22 14
## 2 15 41 11
## 3 13 45  8
## 4 18 43  2
## 5 16 29  8
data_csv[,2:4]      # Memanggil Variabel 2 sampai 4 dari data frame data_csv
##   x1 x2 x3
## 1 14 22 14
## 2 15 41 11
## 3 13 45  8
## 4 18 43  2
## 5 16 29  8

Deskripsi Data (1) : Statistika Deskriptif

sum(data_csv)       # Menjumlahkan seluruh isi data frame
## [1] 926
sum(data_csv$y)     # Total Jumlah Variabel y dari data frame data_csv
## [1] 627
sd(data_csv$x1)     # Standar Deviasi dari Variabel x1 dari data frame data_csv
## [1] 1.923538
median(data_csv$x2) # Nilai Tengah (median) dari Variabel x2 dari data frame data_csv
## [1] 41
min(data_csv)       # Nilai terkecil dari data frame data_csv
## [1] 2
max(data_csv)       # Nilai terbesar dari data frame data_csv
## [1] 140

Deskripsi Data (2) : Boxplot dan Korelasi

boxplot(data_csv, horizontal=TRUE, main="Boxplot data_csv", col="gold")     # Membuat Boxplot

cor(data_csv, method = "pearson")                                           # Matrix Korelasi antar Variabel dalam Data Frame data_csv
##             y         x1         x2         x3
## y   1.0000000 -0.7565031 -0.2896367  0.9246061
## x1 -0.7565031  1.0000000  0.1299688 -0.7185246
## x2 -0.2896367  0.1299688  1.0000000 -0.6236349
## x3  0.9246061 -0.7185246 -0.6236349  1.0000000

Referensi lebih lanjut: Anda bisa eksplorasi lebih lanjut berbagai tampilan korelasi dengan Correlogram dari package corrplot melalui link berikut : http://www.sthda.com/english/wiki/visualize-correlation-matrix-using-correlogram

Menyimpan Data

data<-data_csv      # Menyimpan data frame "data_csv" ke objek baru "data"

# Mengatur Folder Kerja dimana file-file berikut akan disimpan.
setwd("E://Pelatihan//")
# Save ke csv
write.csv(data,'data_01.csv', row.names = FALSE)
# Save ke xlsx
xlsx::write.xlsx(data, file = "data_01.xlsx", sheetName = "data_01", append = FALSE, row.names = FALSE)
# Save ke txt
write.table(data, file = "data_01.txt", sep = "\t", row.names = FALSE)
# Save ke sav
rio::export(data, "data_01.sav") 

Menyimpan Gambar (Plot)

Fungsi ini akan menyimpan file dalam format .png pada Folder Kerja

png(file="Boxplot_data_csv.png",
width=600, height=350)
boxplot(data_csv, horizontal=TRUE, main="Boxplot data_csv", col="darkmagenta")
dev.off()