Email : sabrina.amelia@student.matanauniversity.ac.id
RPubs : https://rpubs.com/sabrinayose
Github : https://github.com/sabrinayose
Jurusan : Teknik Informatika
Address : ARA Center, Matana University Tower
Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Note:
Untuk versi Python ada di
Colabs
| Kriteria | R | Python |
|---|---|---|
| Penggunaan | Analisis Statistik | Lebih umum mengenai sains data |
| Ruang Lingkup | Data Science & Statistik | Aplikasi & Industri |
| Pengguna | Akademisi & Peneliti | Programmers & Developers |
| IDE (User Interface) | RStudio | Spyder, Jupiter Notebook, Pycharm, dll |
| Ekstensi | .R dan .Rmd |
.py dan .ipynb |
| Struktur Data | Vektor, List, Matriks, Array, Faktor, dan Data Frame | List, Dictionary, dan Tupel |
| Packages dan Library | tidyverse, ggplot2, caret, zoo | pandas, scipy, scikit-learn, TensorFlow, caret |
| Kelebihan | Library yang banyak dan kualitas visualisasi grafiknya tinggi | Sistematika penulisan mudah dibaca, berfokus pada kecepatan komputasi, pengembangan web, jaringan, otomatisasi, dll |
| Kekurangan | Terdapat ketergantungan terhadap library | Library nya lebih sedikit dari R |
| Integrasi | Fitur RMarkdown dan Shiny | Aplikasi lebih luas |
Terdiri dari 3 hal dasar yaitu:
Ada tiga cara menulis notasi untuk menggunakan variabel untuk menyimpan jenis data ke dalam memori, yaitu:
= (untuk penugasan sederhana)<- (untuk penugasan dari kiri)-> (untuk penugasan dari kanan)x = 3
y <- 5
4 -> z
print(c(x,y,z))## [1] 3 5 4
Komentar pada skrip atau koding R dan Python untuk memudahkan pengguna memahami isi skrip atau koding dengan memberi informasi tambahan. Komentar akan diabaikan oleh kompiler.
#Komentar pada awal pernyataan
x = 26
print(x) #Komentar pada akhir pernyataan## [1] 26
Operator merupakan sebuah simbol yang mengarahkan compiler melakukan beberapa operasi seperti operasi matematis, logika, dan pada sekumpulan BIlangan Kompleks, Integer, dan Numerik sebagai input.
Operator aritmatika biasa berupa nilai skalar, bilangan kompleks, atau vektor.
| Operator | R | Python |
|---|---|---|
| Penjumlahan | + |
+ |
| Pengurangan | - |
- |
| Perkalian | * |
* |
| Pembagian | / |
/ |
| Pemangkatan | ^ |
** |
| Modulo | %% |
% |
Penjumlahan
x <- c(6,3,8)
y <- c(5,9,3)
print(x+y)## [1] 11 12 11
#Atau bila ingin menampilkan keterangan
cat("Penjumlahan x dan y adalah ", x+y)## Penjumlahan x dan y adalah 11 12 11
Pengurangan
x <- c(6,3,8)
y <- c(5,9,3)
print(x-y)## [1] 1 -6 5
#Atau bila ingin menampilkan keterangan
cat("Pengurangan x dan y adalah ", x-y)## Pengurangan x dan y adalah 1 -6 5
Perkalian
x <- c(6,3,8)
y <- c(5,9,3)
print(x*y)## [1] 30 27 24
#Atau bila ingin menampilkan keterangan
cat("Perkalian x dan y adalah ", x*y)## Perkalian x dan y adalah 30 27 24
Pembagian
x <- c(6,3,8)
y <- c(5,9,3)
print(x/y)## [1] 1.2000000 0.3333333 2.6666667
#Atau bila ingin menampilkan keterangan
cat("Pembagian x dan y adalah ", x/y)## Pembagian x dan y adalah 1.2 0.3333333 2.666667
Pemangkatan
x <- c(6,3,8)
y <- c(5,9,3)
print(x^y)## [1] 7776 19683 512
#Atau bila ingin menampilkan keterangan
cat("Pemangkatan x dan y adalah ", x^y)## Pemangkatan x dan y adalah 7776 19683 512
Modulo
x <- c(6,3,8)
y <- c(5,9,3)
print(x%%y)## [1] 1 3 2
#Atau bila ingin menampilkan keterangan
cat("Modulo x dan y adalah ", x%%y)## Modulo x dan y adalah 1 3 2
Melakukan perbandingan elemen. Mengembalikan nilai Boolean TRUE jika memenuhi relasi.
| Operator | R | Python | Keterangan |
|---|---|---|---|
| Kurang dari | < |
< |
Mengembalikan nilai TRUE jika elemen lebih kecil dari ketentuan. Selain itu, mengembalikan nilai FALSE |
| Kurang dari sama dengan | <= |
<= |
Mengembalikan nilai TRUE jika elemen lebih kecil atau sama dengan ketentuan. Selain itu, mengembalikan nilai FALSE |
| Lebih besar dari | > |
> |
Mengembalikan nilai TRUE jika elemen lebih besar dari ketentuan. Selain itu, mengembalikan nilai FALSE |
| Lebih besar dari sama dengan | >= |
>= |
Mengembalikan nilai TRUE jika elemen lebih besar dari atau sama dengan ketentuan. Selain itu, mengembalikan nilai FALSE |
| Sama dengan | == |
== |
Mengembalikan nilai TRUE jika elemen sama dengan ketentuan. Selain itu, mengembalikan nilai FALSE |
| Tidak sama dengan | != |
!= |
Mengembalikan nilai TRUE jika elemen tidak sama dengan ketentuan. Selain itu, mengembalikan nilai FALSE |
Kurang dari
x <- 4
y <- 9
cat("x kurang dari y : ", x<y)## x kurang dari y : TRUE
Kurang dari sama dengan
x <- 4
y <- 9
cat("x kurang dari sama dengan y : ", x<=y)## x kurang dari sama dengan y : TRUE
Lebih besar dari
x <- 4
y <- 9
cat("x lebih besar dari y : ", x>y)## x lebih besar dari y : FALSE
Lebih besar dari sama dengan
x <- 4
y <- 9
cat("x lebih besar dari sama dengan y : ", x>=y)## x lebih besar dari sama dengan y : FALSE
Sama dengan
x <- 4
y <- 9
cat("x sama dengan y : ", x==y)## x sama dengan y : FALSE
Tidak sama dengan
x <- 4
y <- 9
cat("x tidak sama dengan y : ", x!=y)## x tidak sama dengan y : TRUE
Mensimulasikan operasi kemudian dievalusi ke nilai Boolean TRUE atau FALSE
Pada R, kecuali nol, data numerik dianggap TRUE
Pada Python, hanya menggunakan True dan False
| Operator | R | Python | Keterangan |
|---|---|---|---|
| NOT | ! |
! |
Negasi/Kebalikan dari nilai elemen |
| AND | & |
& |
Mengembalikan nilai TRUE jika keduanya benar |
| OR | | |
| |
Mengembalikan nilai TRUE jika salah satunya benar |
| XOR | || |
^ |
Mengembalikan nilai TRUE jika salah satunya benar dan FALSE jika keduanya benar atau keduanya salah |
Logika Negasi
x <- c(TRUE,0,3)
y <- c(0.5,3+6i,FALSE)
cat("Logika negasi x (~) = ", !x)## Logika negasi x (~) = FALSE TRUE FALSE
cat("Logika negasi y (~) = ", !y)## Logika negasi y (~) = FALSE FALSE TRUE
Logika Konjungsi (Dan)
x <- c(TRUE,0,3)
y <- c(0.5,3+6i,FALSE)
cat("Logika konjungsi = ", x & y)## Logika konjungsi = TRUE FALSE FALSE
Logika Disjungsi (Atau)
x <- c(TRUE,0,3)
y <- c(0.5,3+6i,FALSE)
cat("Logika Disjungsi = ", x | y)## Logika Disjungsi = TRUE TRUE TRUE
Logika Disjungsi Parsial
x <- c(TRUE,0,3)
y <- c(0.5,3+6i,FALSE)
cat("Logika Disjungsi Parsial = ", x || y)## Logika Disjungsi Parsial = TRUE
Berlaku Sifat Komutatif dan Asosiatif
Akar
x <- c(3,8,5)
y <- c(4,8,7)
sqrt(x * y)## [1] 3.464102 8.000000 5.916080
Logaritma
x <- c(3,8,5)
y <- c(4,8,7)
log(x)## [1] 1.098612 2.079442 1.609438
Eksponen
x <- c(3,8,5)
y <- c(4,8,7)
exp(y)## [1] 54.59815 2980.95799 1096.63316
Tanda Kurung
x <- c(3,8,5)
y <- c(4,8,7)
(x/y) + y## [1] 4.750000 9.000000 7.714286
| Tipe Data | R | Python | Penjelasan |
|---|---|---|---|
| Double/Float | 7.8 | 7.8 | Bilangan desimal (komaan) |
| Integer | 7 | 7 | Bilangan Bulat |
| Boolean/Logikal | TRUE/FALSE | True/False | Benar bernilai 1, Salah bernilai 0 |
| String | “a”,‘b’,‘123’ | “a”,‘b’,‘123’ | Karakter/kalimat/angka yang diapit tanda petik |
| Complex | 5+2i | 5+2j | Pasangan angka real dan imajiner |
Nilai Desimal
d1 = 7.8Nilai Integer
d2 = as.integer(7)
d2 = 7LBoolean/Logical
d3 = c(TRUE,FALSE)
d3 = as.logical(c(0,1))String/Character
d4 = c("a",'b','123')Complex
d5 = 1 + 2iclass(d1) untuk mencetak nama kelas variabel.typeof(d1) untuk mencetak tipe variabel. | Nama | Fungsi |
|---|---|
as.integer() |
mengubah menjadi integer |
as.double() |
mengubah menjadi float |
as.logical() |
mengubah menjadi boolean |
as.character() |
mengubah menjadi karakter |
as.complex() |
mengubah menjadi kompleks |
Ciri-ciri data frame adalah:
#Data frame 1
df1_R <- data.frame(kode = c(1:5),
nama = c("Julian","Vanessa","Jeffry","Angel", "Nikki"),
gaji = c(623.3,515.2,611.0,729.0,843.25),
mulai_kerja = as.Date(c("2022-01-01","2020-09-23","2022-11-15","2022-05-11","2022-03-27")),
divisi = c("DS","DS","BA","DA","DS"),
stringsAsFactors = F)
#Data frame 2
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","2020-07-30","2022-06-17","2022-07-30","2018-09-03")),
divisi = c("Actuaries","Actuaries","CA","DE","Lecturer"),
stringsAsFactors = F)Menggabungkan dua data frame
df3_R <- rbind(df1_R,df2_R)Mencetak hasil
df3_R <- rbind(df1_R,df2_R)
print(df3_R)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.30 2022-01-01 DS
## 2 2 Vanessa 515.20 2020-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 2020-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
Mencetak enam baris pertama (1)
df3_R <- rbind(df1_R,df2_R)
head(df3_R)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.30 2022-01-01 DS
## 2 2 Vanessa 515.20 2020-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
Mencetak enam baris pertama (2)
df3_R <- rbind(df1_R,df2_R)
head(df3_R,6)## kode nama gaji mulai_kerja divisi
## 1 1 Julian 623.30 2022-01-01 DS
## 2 2 Vanessa 515.20 2020-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
Menampilkan data di RStudio seperti excel
df3_R <- rbind(df1_R,df2_R)
View(df3_R)Cek tipe data frame
df3_R <- rbind(df1_R,df2_R)
class(df3_R)## [1] "data.frame"
Cek struktur data frame
df3_R <- rbind(df1_R,df2_R)
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" "Vanessa" "Jeffry" "Angel" ...
## $ gaji : num 623 515 611 729 843 ...
## $ mulai_kerja: Date, format: "2022-01-01" "2020-09-23" ...
## $ divisi : chr "DS" "DS" "BA" "DA" ...
Periksa dimensi data
df3_R <- rbind(df1_R,df2_R)
dim(df3_R)## [1] 10 5
Summary statistik dasar
df3_R <- rbind(df1_R,df2_R)
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.:2021-01-17
## Median : 5.50 Mode :character Median :632.8 Median :2022-04-18
## Mean : 5.50 Mean :654.2 Mean :2021-09-07
## 3rd Qu.: 7.75 3rd Qu.:722.5 3rd Qu.:2022-06-10
## Max. :10.00 Max. :843.2 Max. :2022-11-15
## NA's :1
## divisi
## Length:10
## Class :character
## Mode :character
##
##
##
##
Biasanya dibuat dengan membaca dataset menggunakan read.table() atau read.csv
No <- (1:52) #No 1-52
Nama<-c(LETTERS,letters) #Huruf kapital dan nonkapital
Jenis_Kelamin<-sample(rep(c("Pria","Wanita"),times=26)) #Jenis Kelamin
#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) #26 universitas luar negeri
Universitas<-sample(c(univ1,univ2,univ3)) #menggabungkan vektor/list di atas
gpa<-runif(52,min = 3.00,max = 4.00) #Menghasilkan 52 angka acak (min=3, max=4)
GPA<-round(gpa,digits=2) #atur digit angka acak Anda
Gaji<-sample(600:1200,52,replace=T) #hasilkan sampel antara 600-1200 (izinkan nilai duplikat)
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 Swasta 3.41 1055
## 2 2 B 2001-01-01 Wanita Swasta 3.53 868
## 3 3 C 2002-01-01 Pria Swasta 3.45 858
## 4 4 D 2003-01-01 Pria Negeri 3.53 872
## 5 5 E 2000-01-01 Wanita Swasta 3.08 1166
## 6 6 F 2001-01-01 Wanita Negeri 3.32 945
## 7 7 G 2002-01-01 Pria Swasta 3.27 1051
## 8 8 H 2003-01-01 Pria Negeri 3.19 666
## 9 9 I 2000-01-01 Pria Negeri 3.91 1154
## 10 10 J 2001-01-01 Wanita LN 3.77 617
## 11 11 K 2002-01-01 Pria Swasta 3.35 1136
## 12 12 L 2003-01-01 Pria Swasta 3.26 693
## 13 13 M 2000-01-01 Wanita Negeri 3.52 1068
## 14 14 N 2001-01-01 Pria Negeri 3.37 1144
## 15 15 O 2002-01-01 Wanita Negeri 3.01 693
## 16 16 P 2003-01-01 Wanita LN 3.11 662
## 17 17 Q 2000-01-01 Pria LN 3.11 1138
## 18 18 R 2001-01-01 Pria Negeri 3.94 894
## 19 19 S 2002-01-01 Pria Negeri 3.20 845
## 20 20 T 2003-01-01 Pria LN 3.31 749
## 21 21 U 2000-01-01 Wanita Negeri 3.19 1179
## 22 22 V 2001-01-01 Wanita Swasta 3.75 935
## 23 23 W 2002-01-01 Pria Swasta 3.68 734
## 24 24 X 2003-01-01 Pria Negeri 3.27 713
## 25 25 Y 2000-01-01 Wanita Negeri 3.82 1027
## 26 26 Z 2001-01-01 Pria Negeri 3.76 635
## 27 27 a 2002-01-01 Pria Negeri 3.48 893
## 28 28 b 2003-01-01 Wanita Negeri 3.12 755
## 29 29 c 2000-01-01 Pria Swasta 3.45 1097
## 30 30 d 2001-01-01 Pria Swasta 3.61 885
## 31 31 e 2002-01-01 Wanita LN 3.80 1161
## 32 32 f 2003-01-01 Pria Negeri 3.17 906
## 33 33 g 2000-01-01 Wanita Negeri 3.93 1170
## 34 34 h 2001-01-01 Pria Negeri 3.66 759
## 35 35 i 2002-01-01 Wanita LN 3.30 1148
## 36 36 j 2003-01-01 Wanita Negeri 3.80 1028
## 37 37 k 2000-01-01 Wanita Swasta 3.25 887
## 38 38 l 2001-01-01 Wanita Negeri 3.33 1004
## 39 39 m 2002-01-01 Wanita Swasta 3.30 736
## 40 40 n 2003-01-01 Pria Negeri 3.28 875
## 41 41 o 2000-01-01 Wanita Negeri 3.82 697
## 42 42 p 2001-01-01 Pria Negeri 3.83 873
## 43 43 q 2002-01-01 Pria LN 3.42 669
## 44 44 r 2003-01-01 Wanita Negeri 3.60 981
## 45 45 s 2000-01-01 Pria Swasta 3.71 718
## 46 46 t 2001-01-01 Wanita LN 3.50 708
## 47 47 u 2002-01-01 Wanita Swasta 3.27 654
## 48 48 v 2003-01-01 Wanita LN 3.95 606
## 49 49 w 2000-01-01 Wanita LN 3.51 720
## 50 50 x 2001-01-01 Wanita Negeri 3.11 841
## 51 51 y 2002-01-01 Pria Swasta 3.52 1200
## 52 52 z 2003-01-01 Wanita Negeri 3.72 1032
Proses ekstraksi data frame (Pengindeksan, Pengirisan, dan Subsetting) harus memperhatikan tipe data dengan baik.
typeof(Karyawan_R) #cek tipe data## [1] "list"
class(Karyawan_R) #cek tipe data## [1] "data.frame"
Karyawan_R[1,5] #ekstrak elemen di baris 1 kolom 5## [1] "Swasta"
Karyawan_R$Nama #Ekstrak spesifik kolom ('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"
Karyawan_R[,c('Nama','Jenis_Kelamin')] #Ekstrak spesifik kolom ('Nama, Jenis_Kelamin')## Nama Jenis_Kelamin
## 1 A Pria
## 2 B Wanita
## 3 C Pria
## 4 D Pria
## 5 E Wanita
## 6 F Wanita
## 7 G Pria
## 8 H Pria
## 9 I Pria
## 10 J Wanita
## 11 K Pria
## 12 L Pria
## 13 M Wanita
## 14 N Pria
## 15 O Wanita
## 16 P Wanita
## 17 Q Pria
## 18 R Pria
## 19 S Pria
## 20 T Pria
## 21 U Wanita
## 22 V Wanita
## 23 W Pria
## 24 X Pria
## 25 Y Wanita
## 26 Z Pria
## 27 a Pria
## 28 b Wanita
## 29 c Pria
## 30 d Pria
## 31 e Wanita
## 32 f Pria
## 33 g Wanita
## 34 h Pria
## 35 i Wanita
## 36 j Wanita
## 37 k Wanita
## 38 l Wanita
## 39 m Wanita
## 40 n Pria
## 41 o Wanita
## 42 p Pria
## 43 q Pria
## 44 r Wanita
## 45 s Pria
## 46 t Wanita
## 47 u Wanita
## 48 v Wanita
## 49 w Wanita
## 50 x Wanita
## 51 y Pria
## 52 z Wanita
Karyawan_R[1:5,] #Ekstrak lima baris pertama Karyawan_R## No Nama Tanggal_Lahir Jenis_Kelamin Universitas GPA Gaji
## 1 1 A 2000-01-01 Pria Swasta 3.41 1055
## 2 2 B 2001-01-01 Wanita Swasta 3.53 868
## 3 3 C 2002-01-01 Pria Swasta 3.45 858
## 4 4 D 2003-01-01 Pria Negeri 3.53 872
## 5 5 E 2000-01-01 Wanita Swasta 3.08 1166
Karyawan_R[,1:5] #Ekstrak lima kolom pertama Karyawan_R## No Nama Tanggal_Lahir Jenis_Kelamin Universitas
## 1 1 A 2000-01-01 Pria Swasta
## 2 2 B 2001-01-01 Wanita Swasta
## 3 3 C 2002-01-01 Pria Swasta
## 4 4 D 2003-01-01 Pria Negeri
## 5 5 E 2000-01-01 Wanita Swasta
## 6 6 F 2001-01-01 Wanita Negeri
## 7 7 G 2002-01-01 Pria Swasta
## 8 8 H 2003-01-01 Pria Negeri
## 9 9 I 2000-01-01 Pria Negeri
## 10 10 J 2001-01-01 Wanita LN
## 11 11 K 2002-01-01 Pria Swasta
## 12 12 L 2003-01-01 Pria Swasta
## 13 13 M 2000-01-01 Wanita Negeri
## 14 14 N 2001-01-01 Pria Negeri
## 15 15 O 2002-01-01 Wanita Negeri
## 16 16 P 2003-01-01 Wanita LN
## 17 17 Q 2000-01-01 Pria LN
## 18 18 R 2001-01-01 Pria Negeri
## 19 19 S 2002-01-01 Pria Negeri
## 20 20 T 2003-01-01 Pria LN
## 21 21 U 2000-01-01 Wanita Negeri
## 22 22 V 2001-01-01 Wanita Swasta
## 23 23 W 2002-01-01 Pria Swasta
## 24 24 X 2003-01-01 Pria Negeri
## 25 25 Y 2000-01-01 Wanita Negeri
## 26 26 Z 2001-01-01 Pria Negeri
## 27 27 a 2002-01-01 Pria Negeri
## 28 28 b 2003-01-01 Wanita Negeri
## 29 29 c 2000-01-01 Pria Swasta
## 30 30 d 2001-01-01 Pria Swasta
## 31 31 e 2002-01-01 Wanita LN
## 32 32 f 2003-01-01 Pria Negeri
## 33 33 g 2000-01-01 Wanita Negeri
## 34 34 h 2001-01-01 Pria Negeri
## 35 35 i 2002-01-01 Wanita LN
## 36 36 j 2003-01-01 Wanita Negeri
## 37 37 k 2000-01-01 Wanita Swasta
## 38 38 l 2001-01-01 Wanita Negeri
## 39 39 m 2002-01-01 Wanita Swasta
## 40 40 n 2003-01-01 Pria Negeri
## 41 41 o 2000-01-01 Wanita Negeri
## 42 42 p 2001-01-01 Pria Negeri
## 43 43 q 2002-01-01 Pria LN
## 44 44 r 2003-01-01 Wanita Negeri
## 45 45 s 2000-01-01 Pria Swasta
## 46 46 t 2001-01-01 Wanita LN
## 47 47 u 2002-01-01 Wanita Swasta
## 48 48 v 2003-01-01 Wanita LN
## 49 49 w 2000-01-01 Wanita LN
## 50 50 x 2001-01-01 Wanita Negeri
## 51 51 y 2002-01-01 Pria Swasta
## 52 52 z 2003-01-01 Wanita Negeri
subset(Karyawan_R, select=GPA) #ekstrak/subset spesifik kolom## GPA
## 1 3.41
## 2 3.53
## 3 3.45
## 4 3.53
## 5 3.08
## 6 3.32
## 7 3.27
## 8 3.19
## 9 3.91
## 10 3.77
## 11 3.35
## 12 3.26
## 13 3.52
## 14 3.37
## 15 3.01
## 16 3.11
## 17 3.11
## 18 3.94
## 19 3.20
## 20 3.31
## 21 3.19
## 22 3.75
## 23 3.68
## 24 3.27
## 25 3.82
## 26 3.76
## 27 3.48
## 28 3.12
## 29 3.45
## 30 3.61
## 31 3.80
## 32 3.17
## 33 3.93
## 34 3.66
## 35 3.30
## 36 3.80
## 37 3.25
## 38 3.33
## 39 3.30
## 40 3.28
## 41 3.82
## 42 3.83
## 43 3.42
## 44 3.60
## 45 3.71
## 46 3.50
## 47 3.27
## 48 3.95
## 49 3.51
## 50 3.11
## 51 3.52
## 52 3.72
subset(Karyawan_R, select=6) #ekstrak/subset spesifik kolom## GPA
## 1 3.41
## 2 3.53
## 3 3.45
## 4 3.53
## 5 3.08
## 6 3.32
## 7 3.27
## 8 3.19
## 9 3.91
## 10 3.77
## 11 3.35
## 12 3.26
## 13 3.52
## 14 3.37
## 15 3.01
## 16 3.11
## 17 3.11
## 18 3.94
## 19 3.20
## 20 3.31
## 21 3.19
## 22 3.75
## 23 3.68
## 24 3.27
## 25 3.82
## 26 3.76
## 27 3.48
## 28 3.12
## 29 3.45
## 30 3.61
## 31 3.80
## 32 3.17
## 33 3.93
## 34 3.66
## 35 3.30
## 36 3.80
## 37 3.25
## 38 3.33
## 39 3.30
## 40 3.28
## 41 3.82
## 42 3.83
## 43 3.42
## 44 3.60
## 45 3.71
## 46 3.50
## 47 3.27
## 48 3.95
## 49 3.51
## 50 3.11
## 51 3.52
## 52 3.72
subset(Karyawan_R, select=c(6,7)) #ekstrak/subset kolom pertama & kedua## GPA Gaji
## 1 3.41 1055
## 2 3.53 868
## 3 3.45 858
## 4 3.53 872
## 5 3.08 1166
## 6 3.32 945
## 7 3.27 1051
## 8 3.19 666
## 9 3.91 1154
## 10 3.77 617
## 11 3.35 1136
## 12 3.26 693
## 13 3.52 1068
## 14 3.37 1144
## 15 3.01 693
## 16 3.11 662
## 17 3.11 1138
## 18 3.94 894
## 19 3.20 845
## 20 3.31 749
## 21 3.19 1179
## 22 3.75 935
## 23 3.68 734
## 24 3.27 713
## 25 3.82 1027
## 26 3.76 635
## 27 3.48 893
## 28 3.12 755
## 29 3.45 1097
## 30 3.61 885
## 31 3.80 1161
## 32 3.17 906
## 33 3.93 1170
## 34 3.66 759
## 35 3.30 1148
## 36 3.80 1028
## 37 3.25 887
## 38 3.33 1004
## 39 3.30 736
## 40 3.28 875
## 41 3.82 697
## 42 3.83 873
## 43 3.42 669
## 44 3.60 981
## 45 3.71 718
## 46 3.50 708
## 47 3.27 654
## 48 3.95 606
## 49 3.51 720
## 50 3.11 841
## 51 3.52 1200
## 52 3.72 1032
subset(Karyawan_R, select=c(2:5)) #ekstrak/subset kolom tertentu## Nama Tanggal_Lahir Jenis_Kelamin Universitas
## 1 A 2000-01-01 Pria Swasta
## 2 B 2001-01-01 Wanita Swasta
## 3 C 2002-01-01 Pria Swasta
## 4 D 2003-01-01 Pria Negeri
## 5 E 2000-01-01 Wanita Swasta
## 6 F 2001-01-01 Wanita Negeri
## 7 G 2002-01-01 Pria Swasta
## 8 H 2003-01-01 Pria Negeri
## 9 I 2000-01-01 Pria Negeri
## 10 J 2001-01-01 Wanita LN
## 11 K 2002-01-01 Pria Swasta
## 12 L 2003-01-01 Pria Swasta
## 13 M 2000-01-01 Wanita Negeri
## 14 N 2001-01-01 Pria Negeri
## 15 O 2002-01-01 Wanita Negeri
## 16 P 2003-01-01 Wanita LN
## 17 Q 2000-01-01 Pria LN
## 18 R 2001-01-01 Pria Negeri
## 19 S 2002-01-01 Pria Negeri
## 20 T 2003-01-01 Pria LN
## 21 U 2000-01-01 Wanita Negeri
## 22 V 2001-01-01 Wanita Swasta
## 23 W 2002-01-01 Pria Swasta
## 24 X 2003-01-01 Pria Negeri
## 25 Y 2000-01-01 Wanita Negeri
## 26 Z 2001-01-01 Pria Negeri
## 27 a 2002-01-01 Pria Negeri
## 28 b 2003-01-01 Wanita Negeri
## 29 c 2000-01-01 Pria Swasta
## 30 d 2001-01-01 Pria Swasta
## 31 e 2002-01-01 Wanita LN
## 32 f 2003-01-01 Pria Negeri
## 33 g 2000-01-01 Wanita Negeri
## 34 h 2001-01-01 Pria Negeri
## 35 i 2002-01-01 Wanita LN
## 36 j 2003-01-01 Wanita Negeri
## 37 k 2000-01-01 Wanita Swasta
## 38 l 2001-01-01 Wanita Negeri
## 39 m 2002-01-01 Wanita Swasta
## 40 n 2003-01-01 Pria Negeri
## 41 o 2000-01-01 Wanita Negeri
## 42 p 2001-01-01 Pria Negeri
## 43 q 2002-01-01 Pria LN
## 44 r 2003-01-01 Wanita Negeri
## 45 s 2000-01-01 Pria Swasta
## 46 t 2001-01-01 Wanita LN
## 47 u 2002-01-01 Wanita Swasta
## 48 v 2003-01-01 Wanita LN
## 49 w 2000-01-01 Wanita LN
## 50 x 2001-01-01 Wanita Negeri
## 51 y 2002-01-01 Pria Swasta
## 52 z 2003-01-01 Wanita Negeri
Menambahkan variabel baru ke dalam data frame dapat dilakukan dengan menetapkan vektor baru.
Karyawan_R$Pajak <- Karyawan_R$Gaji * 0.03 # Menambahkan variabel baru "Pajak"
Karyawan_R$Gaji_Bersih <- Karyawan_R$Gaji - Karyawan_R$Pajak # Menambahkan variabel baru "Gaji Bersih"
Karyawan_R$Gaji_Grup1 <- Karyawan_R$Gaji > 950 # Menambahkan variabel baru "Grup 1"
Karyawan_R$Gaji_Grup2 <- ifelse(Karyawan_R$Gaji > 950, "Gaji Besar", "Gaji Kecil") # Menambahkan variabel baru "Gaji Grup 2"
Karyawan_R$Gaji_Grup3 <- factor(Karyawan_R$GPA > 3.5 & Karyawan_R$Gaji > 950, labels = c("level1","level2"))
# Menambahkan variabel baru "Gaji Grup 3"
min(Karyawan_R$Gaji) # Nilai minimum 'Gaji'## [1] 606
max(Karyawan_R$Gaji) # Nilai maximum 'Gaji'## [1] 1200
mean(Karyawan_R$Gaji) # Nilai rerata 'Gaji'## [1] 894.2308
var(Karyawan_R$Gaji) # Nilai variansi 'Gaji'## [1] 33658.89
sd(Karyawan_R$Gaji) # Nilai standar deviasi 'Gaji'## [1] 183.4636
summary(Karyawan_R$Gaji) # Statistik dasar data frame 'Gaji'## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 606.0 719.5 880.0 894.2 1052.0 1200.0
Menggunakan fungsi names()
rename_1<-Karyawan_R # Merubah nama data frame
names(rename_1)<-c("no",
"nama",
"tgl.lahir",
"jenis.kelamin",
"univ",
"ipk",
"gaji") #Merubah variabel pada data frame
rename_1## no nama tgl.lahir jenis.kelamin univ ipk gaji NA NA NA
## 1 1 A 2000-01-01 Pria Swasta 3.41 1055 31.65 1023.35 TRUE
## 2 2 B 2001-01-01 Wanita Swasta 3.53 868 26.04 841.96 FALSE
## 3 3 C 2002-01-01 Pria Swasta 3.45 858 25.74 832.26 FALSE
## 4 4 D 2003-01-01 Pria Negeri 3.53 872 26.16 845.84 FALSE
## 5 5 E 2000-01-01 Wanita Swasta 3.08 1166 34.98 1131.02 TRUE
## 6 6 F 2001-01-01 Wanita Negeri 3.32 945 28.35 916.65 FALSE
## 7 7 G 2002-01-01 Pria Swasta 3.27 1051 31.53 1019.47 TRUE
## 8 8 H 2003-01-01 Pria Negeri 3.19 666 19.98 646.02 FALSE
## 9 9 I 2000-01-01 Pria Negeri 3.91 1154 34.62 1119.38 TRUE
## 10 10 J 2001-01-01 Wanita LN 3.77 617 18.51 598.49 FALSE
## 11 11 K 2002-01-01 Pria Swasta 3.35 1136 34.08 1101.92 TRUE
## 12 12 L 2003-01-01 Pria Swasta 3.26 693 20.79 672.21 FALSE
## 13 13 M 2000-01-01 Wanita Negeri 3.52 1068 32.04 1035.96 TRUE
## 14 14 N 2001-01-01 Pria Negeri 3.37 1144 34.32 1109.68 TRUE
## 15 15 O 2002-01-01 Wanita Negeri 3.01 693 20.79 672.21 FALSE
## 16 16 P 2003-01-01 Wanita LN 3.11 662 19.86 642.14 FALSE
## 17 17 Q 2000-01-01 Pria LN 3.11 1138 34.14 1103.86 TRUE
## 18 18 R 2001-01-01 Pria Negeri 3.94 894 26.82 867.18 FALSE
## 19 19 S 2002-01-01 Pria Negeri 3.20 845 25.35 819.65 FALSE
## 20 20 T 2003-01-01 Pria LN 3.31 749 22.47 726.53 FALSE
## 21 21 U 2000-01-01 Wanita Negeri 3.19 1179 35.37 1143.63 TRUE
## 22 22 V 2001-01-01 Wanita Swasta 3.75 935 28.05 906.95 FALSE
## 23 23 W 2002-01-01 Pria Swasta 3.68 734 22.02 711.98 FALSE
## 24 24 X 2003-01-01 Pria Negeri 3.27 713 21.39 691.61 FALSE
## 25 25 Y 2000-01-01 Wanita Negeri 3.82 1027 30.81 996.19 TRUE
## 26 26 Z 2001-01-01 Pria Negeri 3.76 635 19.05 615.95 FALSE
## 27 27 a 2002-01-01 Pria Negeri 3.48 893 26.79 866.21 FALSE
## 28 28 b 2003-01-01 Wanita Negeri 3.12 755 22.65 732.35 FALSE
## 29 29 c 2000-01-01 Pria Swasta 3.45 1097 32.91 1064.09 TRUE
## 30 30 d 2001-01-01 Pria Swasta 3.61 885 26.55 858.45 FALSE
## 31 31 e 2002-01-01 Wanita LN 3.80 1161 34.83 1126.17 TRUE
## 32 32 f 2003-01-01 Pria Negeri 3.17 906 27.18 878.82 FALSE
## 33 33 g 2000-01-01 Wanita Negeri 3.93 1170 35.10 1134.90 TRUE
## 34 34 h 2001-01-01 Pria Negeri 3.66 759 22.77 736.23 FALSE
## 35 35 i 2002-01-01 Wanita LN 3.30 1148 34.44 1113.56 TRUE
## 36 36 j 2003-01-01 Wanita Negeri 3.80 1028 30.84 997.16 TRUE
## 37 37 k 2000-01-01 Wanita Swasta 3.25 887 26.61 860.39 FALSE
## 38 38 l 2001-01-01 Wanita Negeri 3.33 1004 30.12 973.88 TRUE
## 39 39 m 2002-01-01 Wanita Swasta 3.30 736 22.08 713.92 FALSE
## 40 40 n 2003-01-01 Pria Negeri 3.28 875 26.25 848.75 FALSE
## 41 41 o 2000-01-01 Wanita Negeri 3.82 697 20.91 676.09 FALSE
## 42 42 p 2001-01-01 Pria Negeri 3.83 873 26.19 846.81 FALSE
## 43 43 q 2002-01-01 Pria LN 3.42 669 20.07 648.93 FALSE
## 44 44 r 2003-01-01 Wanita Negeri 3.60 981 29.43 951.57 TRUE
## 45 45 s 2000-01-01 Pria Swasta 3.71 718 21.54 696.46 FALSE
## 46 46 t 2001-01-01 Wanita LN 3.50 708 21.24 686.76 FALSE
## 47 47 u 2002-01-01 Wanita Swasta 3.27 654 19.62 634.38 FALSE
## 48 48 v 2003-01-01 Wanita LN 3.95 606 18.18 587.82 FALSE
## 49 49 w 2000-01-01 Wanita LN 3.51 720 21.60 698.40 FALSE
## 50 50 x 2001-01-01 Wanita Negeri 3.11 841 25.23 815.77 FALSE
## 51 51 y 2002-01-01 Pria Swasta 3.52 1200 36.00 1164.00 TRUE
## 52 52 z 2003-01-01 Wanita Negeri 3.72 1032 30.96 1001.04 TRUE
## NA NA
## 1 Gaji Besar level1
## 2 Gaji Kecil level1
## 3 Gaji Kecil level1
## 4 Gaji Kecil level1
## 5 Gaji Besar level1
## 6 Gaji Kecil level1
## 7 Gaji Besar level1
## 8 Gaji Kecil level1
## 9 Gaji Besar level2
## 10 Gaji Kecil level1
## 11 Gaji Besar level1
## 12 Gaji Kecil level1
## 13 Gaji Besar level2
## 14 Gaji Besar level1
## 15 Gaji Kecil level1
## 16 Gaji Kecil level1
## 17 Gaji Besar level1
## 18 Gaji Kecil level1
## 19 Gaji Kecil level1
## 20 Gaji Kecil level1
## 21 Gaji Besar level1
## 22 Gaji Kecil level1
## 23 Gaji Kecil level1
## 24 Gaji Kecil level1
## 25 Gaji Besar level2
## 26 Gaji Kecil level1
## 27 Gaji Kecil level1
## 28 Gaji Kecil level1
## 29 Gaji Besar level1
## 30 Gaji Kecil level1
## 31 Gaji Besar level2
## 32 Gaji Kecil level1
## 33 Gaji Besar level2
## 34 Gaji Kecil level1
## 35 Gaji Besar level1
## 36 Gaji Besar level2
## 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 Kecil level1
## 44 Gaji Besar level2
## 45 Gaji Kecil level1
## 46 Gaji Kecil level1
## 47 Gaji Kecil level1
## 48 Gaji Kecil level1
## 49 Gaji Kecil level1
## 50 Gaji Kecil level1
## 51 Gaji Besar level2
## 52 Gaji Besar level2
Menggunakan fungsi rename() yang ada pada [dplyr package].
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 Swasta 3.41 1055 31.65 1023.35
## 2 2 B 2001-01-01 Wanita Swasta 3.53 868 26.04 841.96
## 3 3 C 2002-01-01 Pria Swasta 3.45 858 25.74 832.26
## 4 4 D 2003-01-01 Pria Negeri 3.53 872 26.16 845.84
## 5 5 E 2000-01-01 Wanita Swasta 3.08 1166 34.98 1131.02
## 6 6 F 2001-01-01 Wanita Negeri 3.32 945 28.35 916.65
## 7 7 G 2002-01-01 Pria Swasta 3.27 1051 31.53 1019.47
## 8 8 H 2003-01-01 Pria Negeri 3.19 666 19.98 646.02
## 9 9 I 2000-01-01 Pria Negeri 3.91 1154 34.62 1119.38
## 10 10 J 2001-01-01 Wanita LN 3.77 617 18.51 598.49
## 11 11 K 2002-01-01 Pria Swasta 3.35 1136 34.08 1101.92
## 12 12 L 2003-01-01 Pria Swasta 3.26 693 20.79 672.21
## 13 13 M 2000-01-01 Wanita Negeri 3.52 1068 32.04 1035.96
## 14 14 N 2001-01-01 Pria Negeri 3.37 1144 34.32 1109.68
## 15 15 O 2002-01-01 Wanita Negeri 3.01 693 20.79 672.21
## 16 16 P 2003-01-01 Wanita LN 3.11 662 19.86 642.14
## 17 17 Q 2000-01-01 Pria LN 3.11 1138 34.14 1103.86
## 18 18 R 2001-01-01 Pria Negeri 3.94 894 26.82 867.18
## 19 19 S 2002-01-01 Pria Negeri 3.20 845 25.35 819.65
## 20 20 T 2003-01-01 Pria LN 3.31 749 22.47 726.53
## 21 21 U 2000-01-01 Wanita Negeri 3.19 1179 35.37 1143.63
## 22 22 V 2001-01-01 Wanita Swasta 3.75 935 28.05 906.95
## 23 23 W 2002-01-01 Pria Swasta 3.68 734 22.02 711.98
## 24 24 X 2003-01-01 Pria Negeri 3.27 713 21.39 691.61
## 25 25 Y 2000-01-01 Wanita Negeri 3.82 1027 30.81 996.19
## 26 26 Z 2001-01-01 Pria Negeri 3.76 635 19.05 615.95
## 27 27 a 2002-01-01 Pria Negeri 3.48 893 26.79 866.21
## 28 28 b 2003-01-01 Wanita Negeri 3.12 755 22.65 732.35
## 29 29 c 2000-01-01 Pria Swasta 3.45 1097 32.91 1064.09
## 30 30 d 2001-01-01 Pria Swasta 3.61 885 26.55 858.45
## 31 31 e 2002-01-01 Wanita LN 3.80 1161 34.83 1126.17
## 32 32 f 2003-01-01 Pria Negeri 3.17 906 27.18 878.82
## 33 33 g 2000-01-01 Wanita Negeri 3.93 1170 35.10 1134.90
## 34 34 h 2001-01-01 Pria Negeri 3.66 759 22.77 736.23
## 35 35 i 2002-01-01 Wanita LN 3.30 1148 34.44 1113.56
## 36 36 j 2003-01-01 Wanita Negeri 3.80 1028 30.84 997.16
## 37 37 k 2000-01-01 Wanita Swasta 3.25 887 26.61 860.39
## 38 38 l 2001-01-01 Wanita Negeri 3.33 1004 30.12 973.88
## 39 39 m 2002-01-01 Wanita Swasta 3.30 736 22.08 713.92
## 40 40 n 2003-01-01 Pria Negeri 3.28 875 26.25 848.75
## 41 41 o 2000-01-01 Wanita Negeri 3.82 697 20.91 676.09
## 42 42 p 2001-01-01 Pria Negeri 3.83 873 26.19 846.81
## 43 43 q 2002-01-01 Pria LN 3.42 669 20.07 648.93
## 44 44 r 2003-01-01 Wanita Negeri 3.60 981 29.43 951.57
## 45 45 s 2000-01-01 Pria Swasta 3.71 718 21.54 696.46
## 46 46 t 2001-01-01 Wanita LN 3.50 708 21.24 686.76
## 47 47 u 2002-01-01 Wanita Swasta 3.27 654 19.62 634.38
## 48 48 v 2003-01-01 Wanita LN 3.95 606 18.18 587.82
## 49 49 w 2000-01-01 Wanita LN 3.51 720 21.60 698.40
## 50 50 x 2001-01-01 Wanita Negeri 3.11 841 25.23 815.77
## 51 51 y 2002-01-01 Pria Swasta 3.52 1200 36.00 1164.00
## 52 52 z 2003-01-01 Wanita Negeri 3.72 1032 30.96 1001.04
## Gaji_Grup1 Gaji_Grup2 Gaji_Grup3
## 1 TRUE Gaji Besar level1
## 2 FALSE Gaji Kecil level1
## 3 FALSE Gaji Kecil level1
## 4 FALSE Gaji Kecil level1
## 5 TRUE Gaji Besar level1
## 6 FALSE Gaji Kecil level1
## 7 TRUE Gaji Besar level1
## 8 FALSE Gaji Kecil level1
## 9 TRUE Gaji Besar level2
## 10 FALSE Gaji Kecil level1
## 11 TRUE Gaji Besar level1
## 12 FALSE Gaji Kecil level1
## 13 TRUE Gaji Besar level2
## 14 TRUE Gaji Besar 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 FALSE Gaji Kecil level1
## 21 TRUE Gaji Besar level1
## 22 FALSE Gaji Kecil level1
## 23 FALSE Gaji Kecil level1
## 24 FALSE Gaji Kecil level1
## 25 TRUE Gaji Besar level2
## 26 FALSE Gaji Kecil level1
## 27 FALSE Gaji Kecil level1
## 28 FALSE Gaji Kecil level1
## 29 TRUE Gaji Besar level1
## 30 FALSE Gaji Kecil level1
## 31 TRUE Gaji Besar level2
## 32 FALSE Gaji Kecil level1
## 33 TRUE Gaji Besar level2
## 34 FALSE Gaji Kecil level1
## 35 TRUE Gaji Besar level1
## 36 TRUE Gaji Besar level2
## 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 FALSE Gaji Kecil level1
## 44 TRUE Gaji Besar level2
## 45 FALSE Gaji Kecil level1
## 46 FALSE Gaji Kecil level1
## 47 FALSE Gaji Kecil level1
## 48 FALSE Gaji Kecil level1
## 49 FALSE Gaji Kecil level1
## 50 FALSE Gaji Kecil level1
## 51 TRUE Gaji Besar level2
## 52 TRUE Gaji Besar level2