Email : veronica.ardilla@student.matanauniversity.ac.id
RPubs : https://rpubs.com/veronicayose/
Github : https://github.com/veronicayose/
Jurusan : Teknik Informatika
Address : ARA Center, Matana University Tower
Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Catatan
Untuk versi Python
(https://colab.research.google.com/drive/18dsIl8Z2r61hlRdHuOriy46NSrQ8NOxr?usp=sharing)
R dan Python adalah bahasa pemrograman yang banyak digunakan dalam data science. Bahasa R lebih banyak digunakan dalam analisis statistik dan Python menyediakan pendekatan yang umum untuk data science.
Persamaan R dan Python adalah keduanya:
Perbedaan R dan Python adalah keduanya:
| Kriteria | R | Python |
|---|---|---|
| Ruang lingkup | Data science dan statistik | Aplikasi dan Industri |
| Pengguna | Peneliti dan akademisi | Programmer dan Developer |
| IDE (User Interface) | RStudio | Jupyter Notebook, Spyder, Pycharm, dan lainnya |
| Ekstensi | .R dan .Rmd |
.py dan .ipynb |
| Struktur data | Vektor, list, matriks, array, faktor, dan bingkai data | List, dictionary, dan tupel |
| Package dan library | Tidyverse, ggplot2, caret, zoo | Pandas, scipy, scikit-learn, TensorFlow, caret |
| Kelebihan | Ada banyak library dan kualitas visualisasi yang tinggi | Sistematika penulisan script yang mudah dibaca, fokus pada komputasi, pengembangan web, jaringan, otomatisasi, dan lainnya |
| Integrasi | Memiliki fitur RMarkdown dan shiny | Integrasi aplikasi lebih luas |
Tiga hal mendasar pada R dan Python adalah
Tiga notasi perintah penugasan variabel pada R:
= Penugasan sederhana<- Penugasan di sisi kiri-> Penugasan di sisi kananContoh
x = 4
y <- 5
6 -> z
print(c(x,y,z))## [1] 4 5 6
Penulisan variabel bertujuan untuk memperjelas atau memberi komentar pada koding. Penulisan komentar pada R dan Python dengan menuliskan # di awal baris.
Contoh
#Cara menuliskan tipe data integer pada R
d1 = as.integer(4)Operator adalah simbol yang mengarahkan compiler untuk melakukan operasi pada penugasan.
Operator aritmatika yang dilakukan bisa berupa nilai skalar, bilangan kompleks, dan vektor.
| Operator | R | Python |
|---|---|---|
| Penjumlahan | + |
+ |
| Pengurangan | - |
- |
| Perkalian | * |
* |
| Pembagian | / |
/ |
| Pemangkatan | ^ |
** |
| Modulo | %% |
% |
Contoh
x <- c(2,3,5) #Memuat vektor x
y <- c(3,4,5) #Memuat vektor ya. Penjumlahan
print(x+y)## [1] 5 7 10
cat("Penjumlahan vektor x dan y: ", x+y, "\n")## Penjumlahan vektor x dan y: 5 7 10
b. Pengurangan
print(x-y)## [1] -1 -1 0
cat("Pengurangan vektor x dan y: ", x-y, "\n")## Pengurangan vektor x dan y: -1 -1 0
c. Perkalian
print(x*y)## [1] 6 12 25
cat("Perkalian vektor x dan y: ", x*y, "\n")## Perkalian vektor x dan y: 6 12 25
d. Pembagian
print(x/y)## [1] 0.6666667 0.7500000 1.0000000
cat("Pembagian vektor x dan y: ", x/y, "\n")## Pembagian vektor x dan y: 0.6666667 0.75 1
e. Pemangkatan
print(x^y)## [1] 8 81 3125
cat("Pemangkatan vektor x dan y: ", x^y, "\n")## Pemangkatan vektor x dan y: 8 81 3125
f. Modulo
print(x%%y)## [1] 2 3 0
cat("Modulo vektor x dan y: ", x**y, "\n")## Modulo vektor x dan y: 8 81 3125
Operator Relasional membandingkan elemen yang bersesuaian pada setiap operan.
| Operator | R | Python | Keterangan |
|---|---|---|---|
| Kurang dari | < |
< |
Mengembalikan TRUE jika operan pertama lebih kecil dari operan kedua |
| Kurang dari sama dengan | <= |
<= |
Mengembalikan TRUE jika operan pertama lebih kecil dari atau sama dengan operan kedua |
| Lebih besar dari | > |
> |
Mengembalikan TRUE jika operan pertama lebih besar dari operan kedua |
| Lebih besar dari sama dengan | >= |
>= |
Mengembalikan TRUE jika operan pertama lebih besar dari atau sama dengan operan kedua |
| Sama dengan | == |
== |
Mengembalikan TRUE jika kedua operan bernilai sama |
| Tidak sama dengan | != |
!= |
Mengembalikan TRUE jika kedua operan tidak bernilai sama |
Contoh
x <- c(2, 3, 4)
y <- c(3, 4, 5)a. Kurang dari
cat("Vektor x kurang dari vektor y : ", x<y)## Vektor x kurang dari vektor y : TRUE TRUE TRUE
b. Kurang dari sama dengan
cat("Vektor x kurang dari sama dengan vektor y : ", x<=y)## Vektor x kurang dari sama dengan vektor y : TRUE TRUE TRUE
c. Lebih besar dari
cat("Vektor x lebih besar dari vektor y : ", x>y)## Vektor x lebih besar dari vektor y : FALSE FALSE FALSE
d. Lebih besar sama dengan
cat("Vektor x lebih besar sama dengan vektor y : ", x>=y)## Vektor x lebih besar sama dengan vektor y : FALSE FALSE FALSE
e. Sama dengan
cat("Vektor x sama dengan vektor y : ", x==y)## Vektor x sama dengan vektor y : FALSE FALSE FALSE
f. Tidak sama dengan
cat("Vektor x tidak sama dengan vektor y : ", x!=y)## Vektor x tidak sama dengan vektor y : TRUE TRUE TRUE
Operator Logika mensimulasikan operasi yang memerlukan keputusan dengan operator di antara operan dan akan ditentukan nilai benar atau salahnya.
| Operator | R | Python | Keterangan |
|---|---|---|---|
| NOT | ! |
! |
Operasi yang membalikkan nilai suatu operan |
| AND | & |
& |
Mengembalikan nilai TRUE jika kedua operan bernilai Benar |
| OR | | |
| |
Mengembalikan nilai FALSE jika kedua operan bernilai Salah |
| XOR | || |
^ |
Mengembalikan nilai TRUE jika salah satu operan bernilai Benar |
Contoh
x <- c(0, TRUE, FALSE)
y <- c(TRUE, 0.1, 4+3i)a. Logika Negasi
cat("Logika Negasi (~) untuk vektor x ", !x)## Logika Negasi (~) untuk vektor x TRUE FALSE TRUE
cat("Logika Negasi (~) untuk vektor y ", !y)## Logika Negasi (~) untuk vektor y FALSE FALSE FALSE
b. Logika Konjungsi
cat("Logika Konjungsi (dan) : ", x&y)## Logika Konjungsi (dan) : FALSE TRUE FALSE
c. Logika Disjungsi
cat("Logika Donjungsi (atau) : ", x|y)## Logika Donjungsi (atau) : TRUE TRUE TRUE
d. Logika Disjungsi Parsial
cat("Logika Disjungsi Parsial : ", x||y)## Logika Disjungsi Parsial : TRUE
x <- c(2,3,4) #memuat vektor x
y <- c(3,4,5) #memuat vektor ya. Bentuk akar
sqrt(x*y)## [1] 2.449490 3.464102 4.472136
b. Bentuk logaritma
log(x)## [1] 0.6931472 1.0986123 1.3862944
c. Bentuk eksponen
exp(y)## [1] 20.08554 54.59815 148.41316
d. Tanda kurung
(x/y) + y## [1] 3.666667 4.750000 5.800000
Tipe data pada R dan python adalah
| Tipe Data | R | Python | Penjelasan |
|---|---|---|---|
| Integer | 3 | 3 | Bilangan bulat |
| Double/float | 1.2 | 1.2 | Bilangan pecahan |
| Boolean/Logical | TRUE/FALSE | True/False | Bernilai benar (1) dan salah (0) |
| Character/String | “a”,‘b’,‘123’ | “a”,‘b’,‘123’ | Karakter, kalimat berupa angka, huruf, dll dan diapit tanda petik satu atau tanda petik dua |
| Complex | 1 + 5i | 1 + 5j | Pasangan angka real dan imajiner |
a. Penulisan kelima tipe data tersebut
# Integer
d1 = as.integer(4)
# Desimal
d2 = 4.5
# Boolean
d3 = c(TRUE, FALSE)
# String dan Character
d4 = c("a", 'b', '123')
# Complex
d5 = 1 + 5ib. Untuk memeriksa tipe data
# Mencetak nama kelas variabel
class(d1)## [1] "integer"
# Mencetak tipe variabel x
typeof(d2)## [1] "double"
c. Fungsi untuk mengubah tipe data
as.integer() untuk mengubah tipe data menjadi integeras.double() untuk mengubah tipe data menjadi floatas.logical() untuk mengubah tipe data menjadi booleanas.character() untuk mengubah tipe data menjadi characteras.complex() untuk mengubah tipe data menjadi kompleksData frame adalah tabel array dua dimensi dengan satu kolom berisi nilai dari satu varibel dan setiap baris berisi satu set nilai dari setiap kolom.
Ciri-ciri data frame:
df1_R <- data.frame(kode = c(1:5),
nama = c("Julian","Vannesa","Jeffry","Angel","Nikki"),
gaji = c(623.3, 515.2, 611.0, 729.0, 843.25),
mulai_kerja = as.Date(c("2022-01-01", "2022-09-23", "2022-11-15", "2022-05-11", "2022-03-27")),
divisi = c("DS","DS","BA","DA","DS"),
stringsAsFactors = F)
df2_R <- data.frame(kode = c(6:10),
nama = c("Ardifo","Irene","Kefas","Sherly","Bakti"),
gaji = c(578.0, 722.5, 632.8, 632.8, NA),
mulai_kerja = as.Date(c("2022-05-21", "2022-07-30", "2022-06-17", "2022-07-30", "2018-09-03")),
divisi = c("Actuaries","Actuaries","CA","DE","Lecturer"),
stringsAsFactors = F)a. Menggabungkan dua data frame
df3_R <- rbind(df1_R, df2_R)b. Mencetak hasil ‘df3_R’
print(df3_R)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.30 2022-01-01 DS
## 2 2 Vannesa 515.20 2022-09-23 DS
## 3 3 Jeffry 611.00 2022-11-15 BA
## 4 4 Angel 729.00 2022-05-11 DA
## 5 5 Nikki 843.25 2022-03-27 DS
## 6 6 Ardifo 578.00 2022-05-21 Actuaries
## 7 7 Irene 722.50 2022-07-30 Actuaries
## 8 8 Kefas 632.80 2022-06-17 CA
## 9 9 Sherly 632.80 2022-07-30 DE
## 10 10 Bakti NA 2018-09-03 Lecturer
c. Mencetak enam baris pertama
head(df3_R)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.30 2022-01-01 DS
## 2 2 Vannesa 515.20 2022-09-23 DS
## 3 3 Jeffry 611.00 2022-11-15 BA
## 4 4 Angel 729.00 2022-05-11 DA
## 5 5 Nikki 843.25 2022-03-27 DS
## 6 6 Ardifo 578.00 2022-05-21 Actuaries
d. Mencetak tiga baris pertama
head(df3_R, 3)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.3 2022-01-01 DS
## 2 2 Vannesa 515.2 2022-09-23 DS
## 3 3 Jeffry 611.0 2022-11-15 BA
e. Menampilkan data di RStudio layaknya excel
View(df3_R)f. Check tipe data frame
class(df3_R)## [1] "data.frame"
g. Check struktur data frame
str(df3_R)## 'data.frame': 10 obs. of 5 variables:
## $ kode : int 1 2 3 4 5 6 7 8 9 10
## $ nama : chr "Julian" "Vannesa" "Jeffry" "Angel" ...
## $ gaji : num 623 515 611 729 843 ...
## $ mulai_kerja: Date, format: "2022-01-01" "2022-09-23" ...
## $ divisi : chr "DS" "DS" "BA" "DA" ...
h. Periksa dimensi data
dim(df3_R)## [1] 10 5
i. Summary statistik dasar
summary(df3_R)## kode nama gaji mulai_kerja
## Min. : 1.00 Length:10 Min. :515.2 Min. :2018-09-03
## 1st Qu.: 3.25 Class :character 1st Qu.:611.0 1st Qu.:2022-04-07
## Median : 5.50 Mode :character Median :632.8 Median :2022-06-03
## Mean : 5.50 Mean :654.2 Mean :2022-01-31
## 3rd Qu.: 7.75 3rd Qu.:722.5 3rd Qu.:2022-07-30
## Max. :10.00 Max. :843.2 Max. :2022-11-15
## NA's :1
## divisi
## Length:10
## Class :character
## Mode :character
##
##
##
##
Data frame biasa dibuat dengan membaca dataset menggunakan read.table() atau read.csv()
Data frame yang dibangun sendiri harus memperhatikan kaidah statistik atau matematik yang berlaku.
Contoh
No <- (1:52)
Nama <- c(LETTERS, letters)
Jenis_Kelamin <- sample(rep(c("Pria", "Wanita"), times=26))
#Menghasilkan tanggal lahir dengan time series
Tiga_Tahun<-seq(as.Date("2000/01/01"), by="year", length.out = 4)
Tanggal_Lahir<-rep(Tiga_Tahun, times=13)
#Kategori Universitas
univ1<-rep("Negeri", times=26) #26 universitas negeri
univ2<-rep("Swasta", times=16) #16 universitas swasta
univ3<-rep("LN", times=10) #10 universitas luar negeri
Universitas<-sample(c(univ1, univ2, univ3)) #Menggabungkan vektor di atas
#Menghasilkan 52 angka acak dengan min = 3 dan max = 4
gpa<-runif(52, min=3.00, max = 4.00)
#Atur digit angka acak
GPA<-round(gpa, digits = 2)
#Hasilkan sampel antara 600-1200 (izinkan nilai duplikat)
Gaji<-sample(600:1200,52,replace=T)
Karyawan_R<-data.frame(No, Nama, Tanggal_Lahir,
Jenis_Kelamin, Universitas, GPA, Gaji)
print(Karyawan_R)## No Nama Tanggal_Lahir Jenis_Kelamin Universitas GPA Gaji
## 1 1 A 2000-01-01 Pria LN 3.13 948
## 2 2 B 2001-01-01 Pria LN 3.28 791
## 3 3 C 2002-01-01 Wanita Negeri 3.01 1033
## 4 4 D 2003-01-01 Pria Negeri 3.10 601
## 5 5 E 2000-01-01 Wanita LN 3.23 733
## 6 6 F 2001-01-01 Pria Negeri 3.98 1039
## 7 7 G 2002-01-01 Wanita Negeri 3.87 848
## 8 8 H 2003-01-01 Pria Swasta 3.39 646
## 9 9 I 2000-01-01 Wanita Swasta 3.29 898
## 10 10 J 2001-01-01 Pria Swasta 3.20 645
## 11 11 K 2002-01-01 Wanita Swasta 3.67 653
## 12 12 L 2003-01-01 Pria Negeri 3.72 856
## 13 13 M 2000-01-01 Pria Swasta 3.20 798
## 14 14 N 2001-01-01 Wanita Negeri 3.94 791
## 15 15 O 2002-01-01 Pria LN 3.07 851
## 16 16 P 2003-01-01 Wanita Swasta 3.72 870
## 17 17 Q 2000-01-01 Pria Negeri 3.41 1032
## 18 18 R 2001-01-01 Wanita Swasta 3.59 605
## 19 19 S 2002-01-01 Wanita Negeri 3.33 766
## 20 20 T 2003-01-01 Pria LN 3.23 1094
## 21 21 U 2000-01-01 Pria LN 3.38 1109
## 22 22 V 2001-01-01 Pria LN 3.36 684
## 23 23 W 2002-01-01 Wanita Negeri 3.57 877
## 24 24 X 2003-01-01 Pria Negeri 3.80 1174
## 25 25 Y 2000-01-01 Pria Negeri 3.95 611
## 26 26 Z 2001-01-01 Pria Swasta 3.52 758
## 27 27 a 2002-01-01 Wanita Swasta 3.92 857
## 28 28 b 2003-01-01 Wanita Negeri 3.56 771
## 29 29 c 2000-01-01 Wanita Swasta 3.37 969
## 30 30 d 2001-01-01 Wanita LN 3.46 990
## 31 31 e 2002-01-01 Pria Negeri 3.04 906
## 32 32 f 2003-01-01 Wanita Swasta 3.87 1017
## 33 33 g 2000-01-01 Pria Negeri 3.16 947
## 34 34 h 2001-01-01 Wanita Negeri 3.24 1092
## 35 35 i 2002-01-01 Wanita Negeri 3.86 971
## 36 36 j 2003-01-01 Pria Swasta 3.89 905
## 37 37 k 2000-01-01 Pria Negeri 3.45 806
## 38 38 l 2001-01-01 Wanita Negeri 3.46 1122
## 39 39 m 2002-01-01 Pria Swasta 3.33 868
## 40 40 n 2003-01-01 Pria LN 3.70 778
## 41 41 o 2000-01-01 Pria Negeri 3.68 625
## 42 42 p 2001-01-01 Wanita Swasta 3.54 901
## 43 43 q 2002-01-01 Wanita Negeri 3.63 1014
## 44 44 r 2003-01-01 Wanita Negeri 3.75 968
## 45 45 s 2000-01-01 Wanita Swasta 3.64 809
## 46 46 t 2001-01-01 Pria Swasta 3.27 1186
## 47 47 u 2002-01-01 Pria LN 3.11 872
## 48 48 v 2003-01-01 Wanita Negeri 3.36 891
## 49 49 w 2000-01-01 Wanita Negeri 3.39 1195
## 50 50 x 2001-01-01 Wanita Negeri 3.80 1142
## 51 51 y 2002-01-01 Pria Negeri 3.47 887
## 52 52 z 2003-01-01 Wanita Negeri 3.75 629
a. Cek tipe datanya
typeof(Karyawan_R)## [1] "list"
class(Karyawan_R)## [1] "data.frame"
b. Ekstrak elemen dari baris ke-1 dan kolom ke-5
Karyawan_R[1,5] ## [1] "LN"
c. Ekstrak spesifik kolom (‘Nama’)
Karyawan_R$Nama## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
## [39] "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
d. Ekstrak spesifik kolom (‘Nama’, ‘Jenis Kelamin’)
Karyawan_R[,c('Nama', 'Jenis_Kelamin')]## Nama Jenis_Kelamin
## 1 A Pria
## 2 B Pria
## 3 C Wanita
## 4 D Pria
## 5 E Wanita
## 6 F Pria
## 7 G Wanita
## 8 H Pria
## 9 I Wanita
## 10 J Pria
## 11 K Wanita
## 12 L Pria
## 13 M Pria
## 14 N Wanita
## 15 O Pria
## 16 P Wanita
## 17 Q Pria
## 18 R Wanita
## 19 S Wanita
## 20 T Pria
## 21 U Pria
## 22 V Pria
## 23 W Wanita
## 24 X Pria
## 25 Y Pria
## 26 Z Pria
## 27 a Wanita
## 28 b Wanita
## 29 c Wanita
## 30 d Wanita
## 31 e Pria
## 32 f Wanita
## 33 g Pria
## 34 h Wanita
## 35 i Wanita
## 36 j Pria
## 37 k Pria
## 38 l Wanita
## 39 m Pria
## 40 n Pria
## 41 o Pria
## 42 p Wanita
## 43 q Wanita
## 44 r Wanita
## 45 s Wanita
## 46 t Pria
## 47 u Pria
## 48 v Wanita
## 49 w Wanita
## 50 x Wanita
## 51 y Pria
## 52 z Wanita
e. Ekstrak lima baris pertama Karyawan_R
Karyawan_R[1:5,]## No Nama Tanggal_Lahir Jenis_Kelamin Universitas GPA Gaji
## 1 1 A 2000-01-01 Pria LN 3.13 948
## 2 2 B 2001-01-01 Pria LN 3.28 791
## 3 3 C 2002-01-01 Wanita Negeri 3.01 1033
## 4 4 D 2003-01-01 Pria Negeri 3.10 601
## 5 5 E 2000-01-01 Wanita LN 3.23 733
f. Ekstrak lima kolom pertama Karyawan_R
Karyawan_R[,1:5]## No Nama Tanggal_Lahir Jenis_Kelamin Universitas
## 1 1 A 2000-01-01 Pria LN
## 2 2 B 2001-01-01 Pria LN
## 3 3 C 2002-01-01 Wanita Negeri
## 4 4 D 2003-01-01 Pria Negeri
## 5 5 E 2000-01-01 Wanita LN
## 6 6 F 2001-01-01 Pria Negeri
## 7 7 G 2002-01-01 Wanita Negeri
## 8 8 H 2003-01-01 Pria Swasta
## 9 9 I 2000-01-01 Wanita Swasta
## 10 10 J 2001-01-01 Pria Swasta
## 11 11 K 2002-01-01 Wanita Swasta
## 12 12 L 2003-01-01 Pria Negeri
## 13 13 M 2000-01-01 Pria Swasta
## 14 14 N 2001-01-01 Wanita Negeri
## 15 15 O 2002-01-01 Pria LN
## 16 16 P 2003-01-01 Wanita Swasta
## 17 17 Q 2000-01-01 Pria Negeri
## 18 18 R 2001-01-01 Wanita Swasta
## 19 19 S 2002-01-01 Wanita Negeri
## 20 20 T 2003-01-01 Pria LN
## 21 21 U 2000-01-01 Pria LN
## 22 22 V 2001-01-01 Pria LN
## 23 23 W 2002-01-01 Wanita Negeri
## 24 24 X 2003-01-01 Pria Negeri
## 25 25 Y 2000-01-01 Pria Negeri
## 26 26 Z 2001-01-01 Pria Swasta
## 27 27 a 2002-01-01 Wanita Swasta
## 28 28 b 2003-01-01 Wanita Negeri
## 29 29 c 2000-01-01 Wanita Swasta
## 30 30 d 2001-01-01 Wanita LN
## 31 31 e 2002-01-01 Pria Negeri
## 32 32 f 2003-01-01 Wanita Swasta
## 33 33 g 2000-01-01 Pria Negeri
## 34 34 h 2001-01-01 Wanita Negeri
## 35 35 i 2002-01-01 Wanita Negeri
## 36 36 j 2003-01-01 Pria Swasta
## 37 37 k 2000-01-01 Pria Negeri
## 38 38 l 2001-01-01 Wanita Negeri
## 39 39 m 2002-01-01 Pria Swasta
## 40 40 n 2003-01-01 Pria LN
## 41 41 o 2000-01-01 Pria Negeri
## 42 42 p 2001-01-01 Wanita Swasta
## 43 43 q 2002-01-01 Wanita Negeri
## 44 44 r 2003-01-01 Wanita Negeri
## 45 45 s 2000-01-01 Wanita Swasta
## 46 46 t 2001-01-01 Pria Swasta
## 47 47 u 2002-01-01 Pria LN
## 48 48 v 2003-01-01 Wanita Negeri
## 49 49 w 2000-01-01 Wanita Negeri
## 50 50 x 2001-01-01 Wanita Negeri
## 51 51 y 2002-01-01 Pria Negeri
## 52 52 z 2003-01-01 Wanita Negeri
g. Ekstrak/subset spesifik kolom
subset(Karyawan_R, select = GPA)## GPA
## 1 3.13
## 2 3.28
## 3 3.01
## 4 3.10
## 5 3.23
## 6 3.98
## 7 3.87
## 8 3.39
## 9 3.29
## 10 3.20
## 11 3.67
## 12 3.72
## 13 3.20
## 14 3.94
## 15 3.07
## 16 3.72
## 17 3.41
## 18 3.59
## 19 3.33
## 20 3.23
## 21 3.38
## 22 3.36
## 23 3.57
## 24 3.80
## 25 3.95
## 26 3.52
## 27 3.92
## 28 3.56
## 29 3.37
## 30 3.46
## 31 3.04
## 32 3.87
## 33 3.16
## 34 3.24
## 35 3.86
## 36 3.89
## 37 3.45
## 38 3.46
## 39 3.33
## 40 3.70
## 41 3.68
## 42 3.54
## 43 3.63
## 44 3.75
## 45 3.64
## 46 3.27
## 47 3.11
## 48 3.36
## 49 3.39
## 50 3.80
## 51 3.47
## 52 3.75
subset(Karyawan_R, select = 6)## GPA
## 1 3.13
## 2 3.28
## 3 3.01
## 4 3.10
## 5 3.23
## 6 3.98
## 7 3.87
## 8 3.39
## 9 3.29
## 10 3.20
## 11 3.67
## 12 3.72
## 13 3.20
## 14 3.94
## 15 3.07
## 16 3.72
## 17 3.41
## 18 3.59
## 19 3.33
## 20 3.23
## 21 3.38
## 22 3.36
## 23 3.57
## 24 3.80
## 25 3.95
## 26 3.52
## 27 3.92
## 28 3.56
## 29 3.37
## 30 3.46
## 31 3.04
## 32 3.87
## 33 3.16
## 34 3.24
## 35 3.86
## 36 3.89
## 37 3.45
## 38 3.46
## 39 3.33
## 40 3.70
## 41 3.68
## 42 3.54
## 43 3.63
## 44 3.75
## 45 3.64
## 46 3.27
## 47 3.11
## 48 3.36
## 49 3.39
## 50 3.80
## 51 3.47
## 52 3.75
h. Ekstrak/subset kolom pertama dan kedua
subset(Karyawan_R, select = c(6,7))## GPA Gaji
## 1 3.13 948
## 2 3.28 791
## 3 3.01 1033
## 4 3.10 601
## 5 3.23 733
## 6 3.98 1039
## 7 3.87 848
## 8 3.39 646
## 9 3.29 898
## 10 3.20 645
## 11 3.67 653
## 12 3.72 856
## 13 3.20 798
## 14 3.94 791
## 15 3.07 851
## 16 3.72 870
## 17 3.41 1032
## 18 3.59 605
## 19 3.33 766
## 20 3.23 1094
## 21 3.38 1109
## 22 3.36 684
## 23 3.57 877
## 24 3.80 1174
## 25 3.95 611
## 26 3.52 758
## 27 3.92 857
## 28 3.56 771
## 29 3.37 969
## 30 3.46 990
## 31 3.04 906
## 32 3.87 1017
## 33 3.16 947
## 34 3.24 1092
## 35 3.86 971
## 36 3.89 905
## 37 3.45 806
## 38 3.46 1122
## 39 3.33 868
## 40 3.70 778
## 41 3.68 625
## 42 3.54 901
## 43 3.63 1014
## 44 3.75 968
## 45 3.64 809
## 46 3.27 1186
## 47 3.11 872
## 48 3.36 891
## 49 3.39 1195
## 50 3.80 1142
## 51 3.47 887
## 52 3.75 629
i. Ekstrak/subset kolom tertentu
subset(Karyawan_R, select = c(2:5))## Nama Tanggal_Lahir Jenis_Kelamin Universitas
## 1 A 2000-01-01 Pria LN
## 2 B 2001-01-01 Pria LN
## 3 C 2002-01-01 Wanita Negeri
## 4 D 2003-01-01 Pria Negeri
## 5 E 2000-01-01 Wanita LN
## 6 F 2001-01-01 Pria Negeri
## 7 G 2002-01-01 Wanita Negeri
## 8 H 2003-01-01 Pria Swasta
## 9 I 2000-01-01 Wanita Swasta
## 10 J 2001-01-01 Pria Swasta
## 11 K 2002-01-01 Wanita Swasta
## 12 L 2003-01-01 Pria Negeri
## 13 M 2000-01-01 Pria Swasta
## 14 N 2001-01-01 Wanita Negeri
## 15 O 2002-01-01 Pria LN
## 16 P 2003-01-01 Wanita Swasta
## 17 Q 2000-01-01 Pria Negeri
## 18 R 2001-01-01 Wanita Swasta
## 19 S 2002-01-01 Wanita Negeri
## 20 T 2003-01-01 Pria LN
## 21 U 2000-01-01 Pria LN
## 22 V 2001-01-01 Pria LN
## 23 W 2002-01-01 Wanita Negeri
## 24 X 2003-01-01 Pria Negeri
## 25 Y 2000-01-01 Pria Negeri
## 26 Z 2001-01-01 Pria Swasta
## 27 a 2002-01-01 Wanita Swasta
## 28 b 2003-01-01 Wanita Negeri
## 29 c 2000-01-01 Wanita Swasta
## 30 d 2001-01-01 Wanita LN
## 31 e 2002-01-01 Pria Negeri
## 32 f 2003-01-01 Wanita Swasta
## 33 g 2000-01-01 Pria Negeri
## 34 h 2001-01-01 Wanita Negeri
## 35 i 2002-01-01 Wanita Negeri
## 36 j 2003-01-01 Pria Swasta
## 37 k 2000-01-01 Pria Negeri
## 38 l 2001-01-01 Wanita Negeri
## 39 m 2002-01-01 Pria Swasta
## 40 n 2003-01-01 Pria LN
## 41 o 2000-01-01 Pria Negeri
## 42 p 2001-01-01 Wanita Swasta
## 43 q 2002-01-01 Wanita Negeri
## 44 r 2003-01-01 Wanita Negeri
## 45 s 2000-01-01 Wanita Swasta
## 46 t 2001-01-01 Pria Swasta
## 47 u 2002-01-01 Pria LN
## 48 v 2003-01-01 Wanita Negeri
## 49 w 2000-01-01 Wanita Negeri
## 50 x 2001-01-01 Wanita Negeri
## 51 y 2002-01-01 Pria Negeri
## 52 z 2003-01-01 Wanita Negeri
Karyawan_R$Pajak <- Karyawan_R$Gaji*0.03 #Menambahkan variabel pajak
Karyawan_R$Gaji_Bersih <- Karyawan_R$Gaji - Karyawan_R$Pajak #Menambahkan variabel gaji bersih
Karyawan_R$Gaji_Grup1 <- Karyawan_R$Gaji > 950 #Menambahkan variabel Gaji Grup 1
Karyawan_R$Gaji_Grup2 <- ifelse(Karyawan_R$Gaji > 950, "Gaji Besar", "Gaji Kecil") #Menambahkan variabel Gaji Grup 2
Karyawan_R$Gaji_Grup3 <- factor(Karyawan_R$GPA > 3.5 & Karyawan_R$Gaji > 950, labels = c("level1", "level2")) #Menambahkan variabel Gaji Grup 3a. Mencari Nilai Minimal ‘Gaji’
min(Karyawan_R$Gaji)## [1] 601
b. Mencari Nilai Maksimal ‘Gaji’
max(Karyawan_R$Gaji)## [1] 1195
c. Mencari Nilai Rerata ‘Gaji’
mean(Karyawan_R$Gaji)## [1] 881.3269
d. Mencari Variansi ‘Gaji’
var(Karyawan_R$Gaji)## [1] 26812.38
e. Mencari standar deviasi ‘Gaji’
sd(Karyawan_R$Gaji)## [1] 163.7449
f. Statistik dasar data frame ‘Gaji’
summary(Karyawan_R$Gaji)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 601.0 776.2 874.5 881.3 996.0 1195.0
Ada dua cara mengganti nama variabel pada R, yaitu
names() rename() a. Dengan fungsi names()
#Mengubah nama data frame
rename_1<-Karyawan_R
#Mengubah nama variabel pada data
names(rename_1)<-c("no", "nama", "tgl.lahir", "jenis.kelamin", "univ", "ipk", "gaji")
rename_1## no nama tgl.lahir jenis.kelamin univ ipk gaji NA NA NA
## 1 1 A 2000-01-01 Pria LN 3.13 948 28.44 919.56 FALSE
## 2 2 B 2001-01-01 Pria LN 3.28 791 23.73 767.27 FALSE
## 3 3 C 2002-01-01 Wanita Negeri 3.01 1033 30.99 1002.01 TRUE
## 4 4 D 2003-01-01 Pria Negeri 3.10 601 18.03 582.97 FALSE
## 5 5 E 2000-01-01 Wanita LN 3.23 733 21.99 711.01 FALSE
## 6 6 F 2001-01-01 Pria Negeri 3.98 1039 31.17 1007.83 TRUE
## 7 7 G 2002-01-01 Wanita Negeri 3.87 848 25.44 822.56 FALSE
## 8 8 H 2003-01-01 Pria Swasta 3.39 646 19.38 626.62 FALSE
## 9 9 I 2000-01-01 Wanita Swasta 3.29 898 26.94 871.06 FALSE
## 10 10 J 2001-01-01 Pria Swasta 3.20 645 19.35 625.65 FALSE
## 11 11 K 2002-01-01 Wanita Swasta 3.67 653 19.59 633.41 FALSE
## 12 12 L 2003-01-01 Pria Negeri 3.72 856 25.68 830.32 FALSE
## 13 13 M 2000-01-01 Pria Swasta 3.20 798 23.94 774.06 FALSE
## 14 14 N 2001-01-01 Wanita Negeri 3.94 791 23.73 767.27 FALSE
## 15 15 O 2002-01-01 Pria LN 3.07 851 25.53 825.47 FALSE
## 16 16 P 2003-01-01 Wanita Swasta 3.72 870 26.10 843.90 FALSE
## 17 17 Q 2000-01-01 Pria Negeri 3.41 1032 30.96 1001.04 TRUE
## 18 18 R 2001-01-01 Wanita Swasta 3.59 605 18.15 586.85 FALSE
## 19 19 S 2002-01-01 Wanita Negeri 3.33 766 22.98 743.02 FALSE
## 20 20 T 2003-01-01 Pria LN 3.23 1094 32.82 1061.18 TRUE
## 21 21 U 2000-01-01 Pria LN 3.38 1109 33.27 1075.73 TRUE
## 22 22 V 2001-01-01 Pria LN 3.36 684 20.52 663.48 FALSE
## 23 23 W 2002-01-01 Wanita Negeri 3.57 877 26.31 850.69 FALSE
## 24 24 X 2003-01-01 Pria Negeri 3.80 1174 35.22 1138.78 TRUE
## 25 25 Y 2000-01-01 Pria Negeri 3.95 611 18.33 592.67 FALSE
## 26 26 Z 2001-01-01 Pria Swasta 3.52 758 22.74 735.26 FALSE
## 27 27 a 2002-01-01 Wanita Swasta 3.92 857 25.71 831.29 FALSE
## 28 28 b 2003-01-01 Wanita Negeri 3.56 771 23.13 747.87 FALSE
## 29 29 c 2000-01-01 Wanita Swasta 3.37 969 29.07 939.93 TRUE
## 30 30 d 2001-01-01 Wanita LN 3.46 990 29.70 960.30 TRUE
## 31 31 e 2002-01-01 Pria Negeri 3.04 906 27.18 878.82 FALSE
## 32 32 f 2003-01-01 Wanita Swasta 3.87 1017 30.51 986.49 TRUE
## 33 33 g 2000-01-01 Pria Negeri 3.16 947 28.41 918.59 FALSE
## 34 34 h 2001-01-01 Wanita Negeri 3.24 1092 32.76 1059.24 TRUE
## 35 35 i 2002-01-01 Wanita Negeri 3.86 971 29.13 941.87 TRUE
## 36 36 j 2003-01-01 Pria Swasta 3.89 905 27.15 877.85 FALSE
## 37 37 k 2000-01-01 Pria Negeri 3.45 806 24.18 781.82 FALSE
## 38 38 l 2001-01-01 Wanita Negeri 3.46 1122 33.66 1088.34 TRUE
## 39 39 m 2002-01-01 Pria Swasta 3.33 868 26.04 841.96 FALSE
## 40 40 n 2003-01-01 Pria LN 3.70 778 23.34 754.66 FALSE
## 41 41 o 2000-01-01 Pria Negeri 3.68 625 18.75 606.25 FALSE
## 42 42 p 2001-01-01 Wanita Swasta 3.54 901 27.03 873.97 FALSE
## 43 43 q 2002-01-01 Wanita Negeri 3.63 1014 30.42 983.58 TRUE
## 44 44 r 2003-01-01 Wanita Negeri 3.75 968 29.04 938.96 TRUE
## 45 45 s 2000-01-01 Wanita Swasta 3.64 809 24.27 784.73 FALSE
## 46 46 t 2001-01-01 Pria Swasta 3.27 1186 35.58 1150.42 TRUE
## 47 47 u 2002-01-01 Pria LN 3.11 872 26.16 845.84 FALSE
## 48 48 v 2003-01-01 Wanita Negeri 3.36 891 26.73 864.27 FALSE
## 49 49 w 2000-01-01 Wanita Negeri 3.39 1195 35.85 1159.15 TRUE
## 50 50 x 2001-01-01 Wanita Negeri 3.80 1142 34.26 1107.74 TRUE
## 51 51 y 2002-01-01 Pria Negeri 3.47 887 26.61 860.39 FALSE
## 52 52 z 2003-01-01 Wanita Negeri 3.75 629 18.87 610.13 FALSE
## NA NA
## 1 Gaji Kecil level1
## 2 Gaji Kecil level1
## 3 Gaji Besar level1
## 4 Gaji Kecil level1
## 5 Gaji Kecil level1
## 6 Gaji Besar level2
## 7 Gaji Kecil level1
## 8 Gaji Kecil level1
## 9 Gaji Kecil level1
## 10 Gaji Kecil level1
## 11 Gaji Kecil level1
## 12 Gaji Kecil level1
## 13 Gaji Kecil level1
## 14 Gaji Kecil level1
## 15 Gaji Kecil level1
## 16 Gaji Kecil level1
## 17 Gaji Besar level1
## 18 Gaji Kecil level1
## 19 Gaji Kecil level1
## 20 Gaji Besar level1
## 21 Gaji Besar level1
## 22 Gaji Kecil level1
## 23 Gaji Kecil level1
## 24 Gaji Besar level2
## 25 Gaji Kecil level1
## 26 Gaji Kecil level1
## 27 Gaji Kecil level1
## 28 Gaji Kecil level1
## 29 Gaji Besar level1
## 30 Gaji Besar level1
## 31 Gaji Kecil level1
## 32 Gaji Besar level2
## 33 Gaji Kecil level1
## 34 Gaji Besar level1
## 35 Gaji Besar level2
## 36 Gaji Kecil level1
## 37 Gaji Kecil level1
## 38 Gaji Besar level1
## 39 Gaji Kecil level1
## 40 Gaji Kecil level1
## 41 Gaji Kecil level1
## 42 Gaji Kecil level1
## 43 Gaji Besar level2
## 44 Gaji Besar level2
## 45 Gaji Kecil level1
## 46 Gaji Besar level1
## 47 Gaji Kecil level1
## 48 Gaji Kecil level1
## 49 Gaji Besar level1
## 50 Gaji Besar level2
## 51 Gaji Kecil level1
## 52 Gaji Kecil level1
b. Dengan fungsi rename()
library(tidyverse)## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Karyawan_R %>%
rename("no" = "No",
"nama" = "Nama",
"tanggal.lahir" = "Tanggal_Lahir",
"jenis.kelamin" = "Jenis_Kelamin",
"univ" = "Universitas",
"ipk" = "GPA",
"gaji" = "Gaji")## no nama tanggal.lahir jenis.kelamin univ ipk gaji Pajak Gaji_Bersih
## 1 1 A 2000-01-01 Pria LN 3.13 948 28.44 919.56
## 2 2 B 2001-01-01 Pria LN 3.28 791 23.73 767.27
## 3 3 C 2002-01-01 Wanita Negeri 3.01 1033 30.99 1002.01
## 4 4 D 2003-01-01 Pria Negeri 3.10 601 18.03 582.97
## 5 5 E 2000-01-01 Wanita LN 3.23 733 21.99 711.01
## 6 6 F 2001-01-01 Pria Negeri 3.98 1039 31.17 1007.83
## 7 7 G 2002-01-01 Wanita Negeri 3.87 848 25.44 822.56
## 8 8 H 2003-01-01 Pria Swasta 3.39 646 19.38 626.62
## 9 9 I 2000-01-01 Wanita Swasta 3.29 898 26.94 871.06
## 10 10 J 2001-01-01 Pria Swasta 3.20 645 19.35 625.65
## 11 11 K 2002-01-01 Wanita Swasta 3.67 653 19.59 633.41
## 12 12 L 2003-01-01 Pria Negeri 3.72 856 25.68 830.32
## 13 13 M 2000-01-01 Pria Swasta 3.20 798 23.94 774.06
## 14 14 N 2001-01-01 Wanita Negeri 3.94 791 23.73 767.27
## 15 15 O 2002-01-01 Pria LN 3.07 851 25.53 825.47
## 16 16 P 2003-01-01 Wanita Swasta 3.72 870 26.10 843.90
## 17 17 Q 2000-01-01 Pria Negeri 3.41 1032 30.96 1001.04
## 18 18 R 2001-01-01 Wanita Swasta 3.59 605 18.15 586.85
## 19 19 S 2002-01-01 Wanita Negeri 3.33 766 22.98 743.02
## 20 20 T 2003-01-01 Pria LN 3.23 1094 32.82 1061.18
## 21 21 U 2000-01-01 Pria LN 3.38 1109 33.27 1075.73
## 22 22 V 2001-01-01 Pria LN 3.36 684 20.52 663.48
## 23 23 W 2002-01-01 Wanita Negeri 3.57 877 26.31 850.69
## 24 24 X 2003-01-01 Pria Negeri 3.80 1174 35.22 1138.78
## 25 25 Y 2000-01-01 Pria Negeri 3.95 611 18.33 592.67
## 26 26 Z 2001-01-01 Pria Swasta 3.52 758 22.74 735.26
## 27 27 a 2002-01-01 Wanita Swasta 3.92 857 25.71 831.29
## 28 28 b 2003-01-01 Wanita Negeri 3.56 771 23.13 747.87
## 29 29 c 2000-01-01 Wanita Swasta 3.37 969 29.07 939.93
## 30 30 d 2001-01-01 Wanita LN 3.46 990 29.70 960.30
## 31 31 e 2002-01-01 Pria Negeri 3.04 906 27.18 878.82
## 32 32 f 2003-01-01 Wanita Swasta 3.87 1017 30.51 986.49
## 33 33 g 2000-01-01 Pria Negeri 3.16 947 28.41 918.59
## 34 34 h 2001-01-01 Wanita Negeri 3.24 1092 32.76 1059.24
## 35 35 i 2002-01-01 Wanita Negeri 3.86 971 29.13 941.87
## 36 36 j 2003-01-01 Pria Swasta 3.89 905 27.15 877.85
## 37 37 k 2000-01-01 Pria Negeri 3.45 806 24.18 781.82
## 38 38 l 2001-01-01 Wanita Negeri 3.46 1122 33.66 1088.34
## 39 39 m 2002-01-01 Pria Swasta 3.33 868 26.04 841.96
## 40 40 n 2003-01-01 Pria LN 3.70 778 23.34 754.66
## 41 41 o 2000-01-01 Pria Negeri 3.68 625 18.75 606.25
## 42 42 p 2001-01-01 Wanita Swasta 3.54 901 27.03 873.97
## 43 43 q 2002-01-01 Wanita Negeri 3.63 1014 30.42 983.58
## 44 44 r 2003-01-01 Wanita Negeri 3.75 968 29.04 938.96
## 45 45 s 2000-01-01 Wanita Swasta 3.64 809 24.27 784.73
## 46 46 t 2001-01-01 Pria Swasta 3.27 1186 35.58 1150.42
## 47 47 u 2002-01-01 Pria LN 3.11 872 26.16 845.84
## 48 48 v 2003-01-01 Wanita Negeri 3.36 891 26.73 864.27
## 49 49 w 2000-01-01 Wanita Negeri 3.39 1195 35.85 1159.15
## 50 50 x 2001-01-01 Wanita Negeri 3.80 1142 34.26 1107.74
## 51 51 y 2002-01-01 Pria Negeri 3.47 887 26.61 860.39
## 52 52 z 2003-01-01 Wanita Negeri 3.75 629 18.87 610.13
## Gaji_Grup1 Gaji_Grup2 Gaji_Grup3
## 1 FALSE Gaji Kecil level1
## 2 FALSE Gaji Kecil level1
## 3 TRUE Gaji Besar level1
## 4 FALSE Gaji Kecil level1
## 5 FALSE Gaji Kecil level1
## 6 TRUE Gaji Besar level2
## 7 FALSE Gaji Kecil level1
## 8 FALSE Gaji Kecil level1
## 9 FALSE Gaji Kecil level1
## 10 FALSE Gaji Kecil level1
## 11 FALSE Gaji Kecil level1
## 12 FALSE Gaji Kecil level1
## 13 FALSE Gaji Kecil level1
## 14 FALSE Gaji Kecil level1
## 15 FALSE Gaji Kecil level1
## 16 FALSE Gaji Kecil level1
## 17 TRUE Gaji Besar level1
## 18 FALSE Gaji Kecil level1
## 19 FALSE Gaji Kecil level1
## 20 TRUE Gaji Besar level1
## 21 TRUE Gaji Besar level1
## 22 FALSE Gaji Kecil level1
## 23 FALSE Gaji Kecil level1
## 24 TRUE Gaji Besar level2
## 25 FALSE Gaji Kecil level1
## 26 FALSE Gaji Kecil level1
## 27 FALSE Gaji Kecil level1
## 28 FALSE Gaji Kecil level1
## 29 TRUE Gaji Besar level1
## 30 TRUE Gaji Besar level1
## 31 FALSE Gaji Kecil level1
## 32 TRUE Gaji Besar level2
## 33 FALSE Gaji Kecil level1
## 34 TRUE Gaji Besar level1
## 35 TRUE Gaji Besar level2
## 36 FALSE Gaji Kecil level1
## 37 FALSE Gaji Kecil level1
## 38 TRUE Gaji Besar level1
## 39 FALSE Gaji Kecil level1
## 40 FALSE Gaji Kecil level1
## 41 FALSE Gaji Kecil level1
## 42 FALSE Gaji Kecil level1
## 43 TRUE Gaji Besar level2
## 44 TRUE Gaji Besar level2
## 45 FALSE Gaji Kecil level1
## 46 TRUE Gaji Besar level1
## 47 FALSE Gaji Kecil level1
## 48 FALSE Gaji Kecil level1
## 49 TRUE Gaji Besar level1
## 50 TRUE Gaji Besar level2
## 51 FALSE Gaji Kecil level1
## 52 FALSE Gaji Kecil level1