R adalah bahasa pemrograman yang digunakan secara luas untuk komputasi statistik dan visualisasi data. Dibuat oleh Ross Ihaka dan Robert Gentleman di awal 1990-an, R menjadi salah satu perangkat lunak paling populer di kalangan ahli statistik, ilmuwan data, dan peneliti. R menawarkan fleksibilitas tinggi dengan ribuan paket yang tersedia untuk berbagai keperluan analisis melalui Comprehensive R Archive Network (CRAN).
R bekerja pada berbagai platform seperti Windows, macOS, dan Linux, dan menggunakan pendekatan berbasis skrip yang memungkinkan pengguna untuk melakukan analisis data yang kompleks dan visualisasi grafik interaktif dengan mudah. Salah satu fitur unggulan R adalah paket Tidyverse yang sangat membantu dalam proses analisis data yang sistematis.
R memiliki beberapa kelebihan, diantaranya adalah:
1. Efektif
dalam pengelolaan data dan fasilitas penyimpanan. Ukuran file yang
disimpan jauh lebih kecil dibanding software lainnya
2. Lengkap
dalam operator perhitungan array,
3. Lengkap dan terdiri dari
koleksi tools statistik yang terintegrasi untuk analisis data,
diantaranya, mulai statistik deskriptif, fungsi probabilitas, berbagai
macam uji statistik, hingga time series.
4. Tampilan grafik yang
menarik dan fleksibel ataupun costumized
5. Dapat dikembangkan
sesuai keperluan dan kebutuhan dan sifatnya yang terbuka, setiap orang
dapat menambahkan fitur-fitur tambahan dalam bentuk paket ke dalam
software R
Program Sumber R dapat didownload secara gratis pada situs web projek R di http://cran.r-project.org/, serta dilengkapi dengan paket penunjang tools atau metode lainnya. Selain itu untuk program yang berbasis Development environment/GUI dapat didownload di Rstudio http://www.rstudio.com/
R beroperasi pada suatu struktur data. Data adalah bahan baku R dan
berperan sebagai input. Berikut ini adalah beberapa tipe data yang bisa
diproses oleh R:
1. Data numerik
Tipe data numerik adalah
semua angka dari 0 sampai 9, dapat bernilai positif atau negatif dan
dapat mengandung pecahan (fraction) atau tidak. Yang penting
adalah tidak bercampur dengan karakter.
2. Data Integer
Jenis
data integer sama dengan numerik, tapi tidak mengandung pecahan, atau
angka yang bulat. Nilai integer boleh positif dan negatif. Untuk
memastikan bahwa nilai yang kita assign untuk suatu obyek
adalah integer, kita bisa menggunakan perintah as.integer(). Jadi kita
bisa juga memerintahkan R untuk menyimpan angka non pecahan sebagai
integer.
3. Bilangan kompleks
Bilangan kompleks adalah
bilangan yang memiliki struktur ”\(a +
bi\)”, mengandung bilangan a yang riil (real) dan
bilangan bi yang imajiner.
4. Karakter
Data berjenis karakter
adalah yang terdiri dari huruf (A-Z). Tipe data ini tidak akan diproses
oleh R sebagai angka.
Semua data yang bisa dibaca oleh R, dinamakan obyek/Objects. Berikut
ini adalah beberapa jenis obyek dalam R: vector, list, array,
matrix, data frames, function dan
factor. Data baik yang kita ketik secara langsung maupun yang
diimpor dari luar akan disimpan ke dalam R sebagai obyek. Setiap obyek
harus memiliki nama. Nama suatu obyek sangat sensitif dan tidak boleh
mengandung spasi atau simbol dash.
1. Vektor
R beroperasi pada
suatu struktur data, contoh yang paling sederhana adalah vektor numerik,
yakni suatu entitas tunggal yang terdiri dari koleksi terurut bilangan.
2. List
List adalah gabungan dari campuran berbagai obyek
yang tidak sebangun.
3. Array
Sebuah array bisa tersusun
oleh matriks dan tabel.
4. Matriks
Sebuah matriks adalah
kumpulan elemen data yang disusun secara dua dimensi, terdiri dari m
baris dan n kolom. Fungsi untuk membuat matriks adalah:
namamatriks<-matrix(c(dataelement), nrow = m, ncol = n)
Perintah
byrow = TRUE akan membuat matriks diisi berdasarkan baris (row).
5.
Data Frame
Data frame adalah kumpulan dari vektor dengan dimensi
yang sama.
6. Factor
Factor merupakan bentuk khusus dari
vektor dengan elemen data berupa data kategori (memiliki taraf/level).
Beberapa perintah yang dapat digunakan: factor(), ordered(), as.factor()
dan as.ordered().
Basic Data Types in R
my_numeric <- 42
Character vector
my_character <- "parahyangan"
Logical vector
my_logical <- FALSE
Class() function untuk mengecek tipe data
Check class of my_numeric
class(my_numeric)
## [1] "numeric"
Check class of my_character
class(my_character)
## [1] "character"
Check class of my_logical
class(my_logical)
## [1] "logical"
Vektor adalah array satu dimensi yang dapat menampung data numerik,
karakter, atau logika. Dengan kata lain, vektor adalah alat sederhana
untuk menyimpan data.
Di R, vektor dibuat menggunakan fungsi
kombinasi c()
numeric_vector <- c(1, 10, 49)
character_vector <- c("a", "b", "c")
Boolean vector (jangan pake kutip )
boolean_vector <- c(TRUE,FALSE,TRUE)
Check class of boolean_vector
class(boolean_vector)
## [1] "logical"
b. Menamai Vector
some_vector <- c("Ananda Shafira", "Mahasiswa")
names(some_vector) <- c("Name", "Profession")
some_vector
## Name Profession
## "Ananda Shafira" "Mahasiswa"
Kode ini membuat vektor some_vector dan kedua elemennya diberi nama.
Elemen pertama diberi label Name, elemen kedua diberi label
Profession.
Salah satu cara singkat (apabila penamaan dilakukan
pada beberapa vektor
some_vector <- c("Ananda Shafira", "Mahasiswa")
label_vector <- c("Name", "Profession")
names(some_vector) <- label_vector
some_vector
## Name Profession
## "Ananda Shafira" "Mahasiswa"
c. Menjumlahkan Vector
A_vector <- c(1, 2, 3)
B_vector <- c(4, 5, 6)
Take the sum of A_vector and B_vector
total_vector <- A_vector + B_vector
Print out total_vector
total_vector
## [1] 5 7 9
sum() adalah fungsi untuk menjumlahkan seluruh elemen pada vektor
Point_tyo <- c(140, -50, 20, -120, 240)
Total winnings with poker
total_poker <- sum(Point_tyo)
Print out total_poker
total_poker
## [1] 230
Untuk memilih spesifik elemen pada vektor, kita dapat menulis seperti
poker_vector[1] untuk memilih elemen pertama. Indeks elemen vektor
dimulai dari 1 bukan 0.
Untuk memilih multiple element pada vektor,
anda dapat melakukan seperti contoh berikut: Fira and Tyo winnings from
Monday to Friday Tyo winnings from Monday to Friday:
Point_tyo <- c(140, -50, 20, -120, 240)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(Point_tyo) <- days_vector
Define a new variable based on a selection
poker_midweek <- Point_tyo[c(2,3,4)]
poker_midweek
## Tuesday Wednesday Thursday
## -50 20 -120
Selain memilih berdasarkan posisi numerik, memilih vektor dapat menggunakan nama dari elemen vektor. Misalnya seperti berikut: Tyo winnings from Monday to Friday:
Point_tyo <- c(140, -50, 20, -120, 240)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(Point_tyo) <- days_vector
Select point tyo results for Monday, Tuesday and Wednesday
point <- Point_tyo[c("Monday","Tuesday","Wednesday")]
point
## Monday Tuesday Wednesday
## 140 -50 20
Rata rata dari pointnya adalah
mean(point)
## [1] 36.66667
d. Selection by Comparison
Logical comparison pada R:
< untuk kurang dari
>
untuk lebih dari
<= untuk kurang dari sama dengan
>=
untuk lebih dari sama dengan
== untuk sama satu sama lain
!=
untuk tidak sama dengan
Misal ingin melihat poin yang bernilai
positif(>0)
Tyo winnings from Monday to Friday:
Point_tyo <- c(140, -50, 20, -120, 240)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(Point_tyo) <- days_vector
Which days did you make positive point?
selection_vector <- Point_tyo > 0
Print out selection_vector
selection_vector
## Monday Tuesday Wednesday Thursday Friday
## TRUE FALSE TRUE FALSE TRUE
Misal kita ingin melihat berapa besar poin yang bernilai positif,
dapat menggunakan syntax berikut:
Select from Point_tyo these
days
poker_winning_days <- Point_tyo[selection_vector]
poker_winning_days
## Monday Wednesday Friday
## 140 20 240
Pada R, matriks adalah kumpulan elemen dari tipe data yang sama
(numerik, karakter,logic) yang disusun menjadi sejumlah baris dan kolom
yang tetap. Karena bekerja pada baris dan kolom, sebuah matriks disebut
dua dimensi.
Membuat matriks pada R menggunakan fungsi
matrix(). Contoh:
matrix(1:9, byrow = TRUE, nrow = 3)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
Dimana :
Argumen pertama adalah kumpulan elemen yang akan
mengisi matriks, yaitu c(1,2 ,3,4 ,5,6,7,8,9)
Arguman byrow=TRUE
menunjukkan bahwa matriks diisi berurutan berdasarkan baris. Jika ingin
diisi berdasarkan kolom, dapat menggunakan argumen byrow=FALSE
Argumen nrow menunjukkan jumlah baris pada matriks
Berikut adalah vektor yang berisi nilai ujian dari masing-masing
mahasiswa dan Combine 3 vektor menjadi 1 vektor.
Nilai
ujian
shafira <- c(88.9, 85.4)
nafisa <- c(90.4, 97.5)
putri <- c(98.6, 93.5)
Create nilai_mahasiswa
nilai_mahasiswa <- c(shafira, nafisa, putri)
Print nilai_mahasiswa
nilai_mahasiswa
## [1] 88.9 85.4 90.4 97.5 98.6 93.5
Buat matriks 3 baris yang tiap barisnya mewakili mahasiswa.
Construct nilai_matrix
nilai_matrix <- matrix(nilai_mahasiswa, byrow=TRUE, nrow=3)
nilai_matrix
## [,1] [,2]
## [1,] 88.9 85.4
## [2,] 90.4 97.5
## [3,] 98.6 93.5
c. Menamai Matriks
Untuk menambahkan nama pada baris dan kolom pada matriks dapat
menggunakan argumen berikut:
rownames(my_matrix) <-
row_names_vector
colnames(my_matrix) <- col_names_vector
Nilai ujian
shafira <- c(88.9, 85.4)
nafisa <- c(90.4, 97.5)
putri <- c(98.6, 93.5)
Construct nilai_matrix
nilai_matrix <- matrix(c(shafira, nafisa, putri), byrow=TRUE, nrow=3)
Vectors nama_baris and nama_kolom, used for naming
nama_kolom <- c("Matematika","IPS")
nama_baris <- c("Shafira", "Nafisa", "Putri")
Name the columns with nama_kolom
colnames(nilai_matrix) <- nama_kolom
Name the rows with nama_baris
rownames(nilai_matrix) <- nama_baris
Print out nilai_matrix
nilai_matrix
## Matematika IPS
## Shafira 88.9 85.4
## Nafisa 90.4 97.5
## Putri 98.6 93.5
d. Menghitung Matriks
Pada R, matriks dapat dihitung total tiap row dan columnnya
rowSums() untuk menjumlahkan total pada tiap baris
colSums() untuk
menjumlahkan total pada tiap kolom
Construct nilai_matrix
nilai <- c(88.9, 85.4, 90.4, 97.5, 98.6, 93.5)
nama_kolom <- c("Matematika","IPS")
nama_baris <- c("Shafira", "Nafisa", "Putri")
nilai_matrix <- matrix(nilai,
nrow = 3, byrow = TRUE,
dimnames = list(nama_baris, nama_kolom))
nilai_matrix
## Matematika IPS
## Shafira 88.9 85.4
## Nafisa 90.4 97.5
## Putri 98.6 93.5
Calculate row nilai_matrix
row_vector <- rowSums(nilai_matrix)
row_vector
## Shafira Nafisa Putri
## 174.3 187.9 192.1
Calculate column nilai_matrix
col_vector <- colSums(nilai_matrix)
col_vector
## Matematika IPS
## 277.9 276.4
dimana dimnames() adalah command untuk set names pada row dan column
pada matriks.
Menambahkan satu atau lebih kolom pada matriks dapat menggunakan
argumen cbind()
Misal, kita ingin menambahkan kolom row_vector pada
nilai_matrix :
Bind the new variable row_vector as a column to
nilai_matrix
all_matrix <- cbind(nilai_matrix, row_vector)
all_matrix
## Matematika IPS row_vector
## Shafira 88.9 85.4 174.3
## Nafisa 90.4 97.5 187.9
## Putri 98.6 93.5 192.1
f. Menambahkan Baris
Menambahkan satu atau lebih baris pada matriks dapat menggunakan
argumen rbind()
Misal, kita ingin menambahkan baris col_vector pada
nilai_matrix :
Bind the new variable col_vector as a row to
nilai_matrix
all_matrix <- rbind(nilai_matrix, col_vector)
all_matrix
## Matematika IPS
## Shafira 88.9 85.4
## Nafisa 90.4 97.5
## Putri 98.6 93.5
## col_vector 277.9 276.4
g. Memilih elemen matriks
Memilih elemen matriks mirip dengan vektor, tetapi karna vektor
memiliki 1 dimensi sedangkan matriks memiliki 2 dimensi, maka contoh
argumennya sebagai berikut:
my_matrix[1,2] yaitu memilih elemen
pada baris ke-1 dan kolom ke-2
my_matrix[c(1:2,4),2:4] yaitu
memilih elemen pada baris ke-1,2,4 dan kolom ke-2,3,4
Apabila
ingin memilih seluruh elemen pada baris atau kolom, maka:
my_matrix[,1] yaitu memilih seluruh elemen baris pada kolom ke-1
my_matrix[1,] yaitu memilih seluruh elemen kolom pada baris
ke-1
Misal, ingin dilihat nilai Matematika dan IPS dari Nafisa
dan Putri
nilai_matrix[2:3,]
## Matematika IPS
## Nafisa 90.4 97.5
## Putri 98.6 93.5
h. Aritmatika matriks
Sama dengan pada vektor, standar operator yang dapat digunakan pada
matriks seperti +,-,/,*, dll.
Misal kita ingin melihat perbedaan
nilai masing-masing mahasiswa dengan rata-rata
Rata-rata dari
ketiga mahasiswa
mean_mhs <- mean(nilai_matrix)
mean_mhs
## [1] 92.38333
Selisih antara nilai dengan rata-rata
selisih <- nilai_matrix - mean_mhs
selisih
## Matematika IPS
## Shafira -3.483333 -6.983333
## Nafisa -1.983333 5.116667
## Putri 6.216667 1.116667
Misal kita ingin mengalikan nilai_matrix dengan matriks c(1:6)
new_matrix <- matrix(c(1:6), byrow=TRUE, nrow=3)
new_matrix
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
Mengalikan nilai_matrix dengan new_matrix
prod_matrix <- nilai_matrix*new_matrix
prod_matrix
## Matematika IPS
## Shafira 88.9 170.8
## Nafisa 271.2 390.0
## Putri 493.0 561.0
Mengalikan new_matrix dengan nilai_matrix
prod_matrix_2 <- new_matrix*nilai_matrix
prod_matrix_2
## Matematika IPS
## Shafira 88.9 170.8
## Nafisa 271.2 390.0
## Putri 493.0 561.0
prod_matrix = prod_matrix_2
prod_matrix==prod_matrix_2
## Matematika IPS
## Shafira TRUE TRUE
## Nafisa TRUE TRUE
## Putri TRUE TRUE
Hal ini berbeda dengan standar perkalian matriks, untuk hal tersebut
argumen yang digunakan adalah %*%
Transpose new_matrix
new_matrix <- t(new_matrix)
new_matrix
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Standar perkalian matriks pada nilai_matriks(3x2) dengan new_matrix(2x3) sehingga dihasilkan matriks 3x3
stan_prod_matrix <- nilai_matrix%*%new_matrix
stan_prod_matrix
## [,1] [,2] [,3]
## Shafira 259.7 608.3 956.9
## Nafisa 285.4 661.2 1037.0
## Putri 285.6 669.8 1054.0
Faktor mengacu pada tipe data statistik yang digunakan untuk
menyimpan variabel kategori. Perbedaan antara variabel kategorikal dan
variabel kontinu adalah bahwa variabel kategorikal belong to kategori
dengan jumlah terbatas. Sedangkan variabel kontinu belong to value
dengan jumlah yang tak terbatas.
Untuk membuat faktor di R
digunakan fungsi factor(). Contoh, pertama buat vektor yang mengandung
semua observasi dengan kategori terbatas. Contoh sex_ vector mengandung
sex dari 5 individu berbeda:
Sex vector
sex_vector <- c("Male", "Female", "Female", "Male", "Male")
Convert sex_vector to a factor
factor_sex_vector <- factor(sex_vector)
Print out factor_sex_vector
factor_sex_vector
## [1] Male Female Female Male Male
## Levels: Female Male
b. Tipe Dari Variabel Kategorik
Terdapat 2 tipe variabel kategori yaitu nominal dan ordinal. Variabel
nominal adalah variabel kategorik tanpa urutan/order, contoh variabel
kategorik animals_vector dengan kategori Gajah, Jerapah, Monyet, dan
Kuda. Tidak ada kategori yang lebih diatas dari yang lainnya artinya
dianggap setara atau semuanya sama-sama binatang. Sedangkan untuk
variabel kategorik temperature_vector dengan kategori Low, Medium, dan
High. Pada variabel ini terdapat urutan dari yang terendah Low,Medium,
dan High.
Animals
animals_vector <- c("Gajah", "Jerapah", "Monyet", "Kuda")
factor_animals_vector <- factor(animals_vector)
factor_animals_vector
## [1] Gajah Jerapah Monyet Kuda
## Levels: Gajah Jerapah Kuda Monyet
Temperature
temperature_vector <- c("High", "Low", "High","Low", "Medium")
factor_temperature_vector <- factor(temperature_vector, order = TRUE, levels = c("Low", "Medium", "High"))
factor_temperature_vector
## [1] High Low High Low Medium
## Levels: Low < Medium < High
Misal kita comparing ordered factors pada temperature_vector.
Factor value for first data analyst
v1 <- factor_temperature_vector[1]
v1
## [1] High
## Levels: Low < Medium < High
Factor value for second data analyst
v2 <- factor_temperature_vector[2]
v2
## [1] Low
## Levels: Low < Medium < High
Is data analyst 1 higher than data analyst 2?
v1>v2
## [1] TRUE
c. Factor level
Dengan dataset yang ada, terkadang diperlukan mengubah nama pada
level untuk kejelasan atau alasan lainnya. Mengatasi hal tersebut dapat
menggunakan fungsi levels().
Code to build
factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector)
## [1] "F" "M"
d. Merangkum Factor
Fungsi summary() akan memberikan gambaran singkat tentang isi
variabel.
Misal:
Build factor_survey_vector with clean
levels
survey_vector <- c("M", "F", "F", "M", "M")
survey_vector
## [1] "M" "F" "F" "M" "M"
Generate summary for survey_vector
summary(survey_vector)
## Length Class Mode
## 5 character character
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
## [1] Male Female Female Male Male
## Levels: Female Male
Generate summary for factor_survey_vector
summary(factor_survey_vector)
## Female Male
## 2 3
Pada matriks, semua elemen yang dimasukkan harus tipe yang sama.
Tetapi pada kenyataannya, kita akan punya dataset dengan tipe yang
berbeda-beda misal dataset dengan variabel:
“Apakah kamu pernah
memakai produk ini?” adalah yes/no questions (logical)
“Berapa
umurmu?” (numeric)
“Apa pendapatmu tentang produk tersebut?” adalah
pernyataan terbuka (character), dsb
Contoh data frame yang terdapat
pada R adalah mtcars
Call head() on mtcars
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
tail(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.7 0 1 5 2
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.5 0 1 5 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.5 0 1 5 6
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.6 0 1 5 8
## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.6 1 1 4 2
b. Struktur Dari Dataset
Metode lain untuk melihat gambaran singkat dari dataset adalah fungsi
str(), fungsi ini akan menunjukkan struktur dari data set. Pada dataset,
informasi yang akan didapatkan:
Jumlah total observasi (misal 32
tipe model)
Jumlah total variabel (misal 11 fitur mobil)
List
lengkap dari nama variabel (misal mpg, cyl,..)
Tipe data untuk tiap
variabel (misal num)
Observasi-observasi awal
str(mtcars)
## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
c. Membuat Data Frame
Membuat data frame pada R dapat menggunakan fungsi
data.frame().
Definition of vectors
name <- c("Shafira", "Soleh", "Nafisa",
"Putri", "Irvanal", "Titin",
"Indah", "Gina")
sex <- c("Female", "Male", "Female",
"Female", "Male", "Female",
"Female","Female")
height <- c(164.2, 167.6, 162.7,
162.5, 166.7, 164.8,
165.5, 164.5)
weight <- c(53.5, 67, 50.2,
53.7, 60.5, 55.4,
54.7, 53.9)
kacamata <- c(FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE)
Create a data frame from the vectors
mhs_df <- data.frame(name, sex, height, weight, kacamata)
mhs_df
## name sex height weight kacamata
## 1 Shafira Female 164.2 53.5 FALSE
## 2 Soleh Male 167.6 67.0 FALSE
## 3 Nafisa Female 162.7 50.2 FALSE
## 4 Putri Female 162.5 53.7 TRUE
## 5 Irvanal Male 166.7 60.5 TRUE
## 6 Titin Female 164.8 55.4 TRUE
## 7 Indah Female 165.5 54.7 FALSE
## 8 Gina Female 164.5 53.9 TRUE
d. Memilih Elemen Dari Data Frame
Sama seperti sebelumnya, kita dapat memilih elemen yang ingin dilihat misal cek dataframe pada kolom 1(name).
mhs_df[,1]
## [1] "Shafira" "Soleh" "Nafisa" "Putri" "Irvanal" "Titin" "Indah"
## [8] "Gina"
e. Memilih subset
Misal kita ingin mengetahui mahasiswa yang mengenakan kacamata.
mhs_df$kacamata
## [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE
mhs_df[kacamata,"name"]
## [1] "Putri" "Irvanal" "Titin" "Gina"
Hal di atas ini bisa dilakukan dengan fungsi subset(), yaitu sebagai
berikut:
subset(my_df, subset = some_condition)
Argumen my_df
adalah dataset yang ingin disubset, lalu some_condition adalah kondisi
sebagai correct subset.
subset(mhs_df, subset=kacamata)
## name sex height weight kacamata
## 4 Putri Female 162.5 53.7 TRUE
## 5 Irvanal Male 166.7 60.5 TRUE
## 6 Titin Female 164.8 55.4 TRUE
## 8 Gina Female 164.5 53.9 TRUE
f. Menyortir
order() adalah fungsi yang memberikan info posisi ranking untuk setiap elemen ketika diaplikasikan pada variabel.
a <- c(100, 10, 1000)
order(a)
## [1] 2 1 3
Misalkan kita ingin reshuffle a sesuai urutan:
a[order(a)]
## [1] 10 100 1000
Contoh selanjutnya melakukan sorting pada data frame, misal kita ingin mengurutkan dataset mhs_df berdasarkan kolom height, maka:
positions <- order(mhs_df$height)
positions
## [1] 4 3 1 8 6 7 5 2
mhs_df[positions,]
## name sex height weight kacamata
## 4 Putri Female 162.5 53.7 TRUE
## 3 Nafisa Female 162.7 50.2 FALSE
## 1 Shafira Female 164.2 53.5 FALSE
## 8 Gina Female 164.5 53.9 TRUE
## 6 Titin Female 164.8 55.4 TRUE
## 7 Indah Female 165.5 54.7 FALSE
## 5 Irvanal Male 166.7 60.5 TRUE
## 2 Soleh Male 167.6 67.0 FALSE
List pada R dapat mengumpulkan berbagai objek dengan satu nama (nama dari listnya) dengan cara teratur. Objek-objek ini dapat berupa matriks, vektor, data frame, bahkan list lainnya, dll. Antar objek-objek tidak harus terkait satu sama lain.
a. Membuat Suatu List
Untuk membuat list dapat menggunakan fungsi list() :
my_list
<- list(comp1,comp2 …)
Misal, buat list dengan nama my_list
yang berisikan variabel my_vector, my_matrix, dan my_df sebagai
komponennya.
Vector with numerics from 1 up to 10
my_vector <- 1:10
Matrix with numerics from 1 up to 10
my_matrix <- matrix(1:10, ncol = 5)
First 10 elements of the built-in data frame mtcars
my_df <- mtcars[1:10,]
Construct list with these different elements:
my_list <- list(my_vector,my_matrix,my_df)
my_list
## [[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
## [[2]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 3 5 7 9
## [2,] 2 4 6 8 10
##
## [[3]]
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
b. Membuat nama pada list
Misal kita ingin memberi nama di setiap komponen my_list pada contoh sebelumnya.
names(my_list) <- c("vector","matrix","data frame")
my_list
## $vector
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $matrix
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 3 5 7 9
## [2,] 2 4 6 8 10
##
## $`data frame`
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Kita juga dapat membuat list langsung dengan nama setiap komponennya,
yaitu:
my_list <- list(name1 = your_comp1, name2 =
your_comp2)
Misal:
my_list <- list(mahasiswa = c("Nafisa","Putri","Fira"),
nilai = c(85,90,95),
matrix = matrix(1:10, ncol = 2))
my_list
## $mahasiswa
## [1] "Nafisa" "Putri" "Fira"
##
## $nilai
## [1] 85 90 95
##
## $matrix
## [,1] [,2]
## [1,] 1 6
## [2,] 2 7
## [3,] 3 8
## [4,] 4 9
## [5,] 5 10
c. Memilih Elemen Pada List
Kita dapat merefer ke nama komponen dengan [[]] atau $, misal”
my_list[["mahasiswa"]]
## [1] "Nafisa" "Putri" "Fira"
my_list[[1]]
## [1] "Nafisa" "Putri" "Fira"
my_list$mahasiswa
## [1] "Nafisa" "Putri" "Fira"
Selain itu kita dapat memilih elemen spesifik pada komponen, misal kita ingin memilih elemen 2 pada komponen mahasiswa:
my_list[["mahasiswa"]][2]
## [1] "Putri"
my_list[[1]]
## [1] "Nafisa" "Putri" "Fira"
my_list$mahasiswa[2]
## [1] "Putri"