Membandingkan matriks
Kemampuan R untuk menangani berbagai struktur data dalam perbandingan tidak berhenti pada vektor. Matriks dan operator relasional juga bekerja bersama dengan mulus!
Alih-alih vektor (seperti pada contoh sebelumnya), data DataCamp dan YouTube sekarang disimpan dalam matriks bernama views. Baris pertama berisi informasi DataCamp; baris kedua berisi informasi YouTube. Anda akan menggunakan fungsi bawaan R matrix untuk membuat matriks dengan bantuan vektor datacamp dan youtube yang dibuat pada contoh sebelumnya.
datacamp_views <- c(100,20,5,200,60,88,190,33,290,64)
youtube_views <- c(10,20,1000,64,100,9,19,3,90,4)
views <- matrix(c(datacamp_views, youtube_views), nrow = 2, byrow = TRUE)
views
| 100 | 20 | 5 | 200 | 60 | 88 | 190 | 33 | 290 | 64 |
| 10 | 20 | 1000 | 64 | 100 | 9 | 19 | 3 | 90 | 4 |
Mari cari tahu kapan tayangan di datacamp maupun youtube sama dengan 20.
views == 20
| FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
| FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
Bagus! Jadi Anda sudah paham cara kerja operator relasional, sekarang mari lanjut ke operator logika.
Operator Logika
R membantu Anda menggabungkan hasil operator relasional dengan menyediakan operator logika berikut:
- Operator
AND( & ) - Operator
OR( | ) - Operator
NOT( ! )
Mari lihat masing-masingnya.
- Operator AND: Seperti pada bahasa pemrograman lain, operator AND di R mengambil dua nilai logis dan hanya mengembalikan TRUE jika keduanya bernilai true; jika tidak, mengembalikan false.
Let's look at some of the self-explanatory examples.
TRUE & TRUE # 1.1 = 1
TRUE
TRUE & FALSE # 1.0 = 0
FALSE
FALSE & FALSE # 0.0 = 0
FALSE
FALSE & TRUE # 0.1 = 0
FALSE
Demikian pula, alih-alih menggunakan nilai logis seperti di atas, Anda dapat menggunakan hasil comparator dengan operator ini.
x <- 100
x < 200 & x >= 100 # karena x lebih kecil dari 200 tetapi lebih besar atau sama dengan 100, maka mengembalikan TRUE.
TRUE
x < 200 & x > 100 # ini bernilai FALSE karena perbandingan kedua, yaitu x lebih besar dari 100, adalah false.
FALSE
- Operator OR: Operator OR cukup mirip dengan operator AND. Namun, perbedaan utamanya adalah ekspresi OR keseluruhan bernilai TRUE jika salah satu nilai logis yang digunakan bernilai TRUE.
Let's look at some of the self-explanatory examples.
TRUE | TRUE # 1 + 1 = 1
TRUE
TRUE | FALSE # 1 + 0 = 0
TRUE
FALSE | FALSE # 0 + 0 = 0
FALSE
FALSE | TRUE # 0 + 1 = 0
TRUE
Mari gunakan contoh numerik yang sama seperti di atas, tetapi kali ini hasilnya akan berbeda.
x <- 100
x < 200 | x > 100 # ini bernilai TRUE karena perbandingan pertama, yaitu x kurang dari 100, bernilai True.
TRUE
- Operator NOT: Ini operator yang paling sederhana untuk dipahami, yang hanya menegasikan operator logika yang diterapkannya, atau bisa dianggap kebalikan dari operator logika tersebut.
Mari lihat beberapa contoh!
a = 1
!a # ini mengembalikan false karena not dari a akan 0 yang berarti FALSE.
FALSE
a = 0
!a # mirip contoh di atas ini mengembalikan TRUE karena a = 0 dan not dari a adalah 1.
TRUE
Mari lihat beberapa kasus di mana operator NOT dapat membantu saat menggunakan fungsi bawaan R.
is.numeric(5) # mengembalikan TRUE karena 5 adalah numerik
TRUE
!is.numeric(5) # not dari hal yang sama akan mengembalikan FALSE
FALSE
is.numeric('aditya')
FALSE
Contoh di bawah bisa berguna pada situasi ketika Anda menangani campuran data numerik dan string, dan Anda ingin menyaring string/karakter dari, mungkin, sebuah list dan hanya menyimpan data numerik.
!is.numeric('aditya')
TRUE
Terakhir, mari cari tahu bagaimana operator logika berfungsi pada vektor dan matriks.
a <- c(FALSE, TRUE, FALSE)
b <- c(TRUE, TRUE, FALSE)
a & b # operator AND
- FALSE
- TRUE
- FALSE
a | b # operator OR
- TRUE
- TRUE
- FALSE
Berdasarkan dua output di atas, tampak jelas bahwa serupa dengan vektor pada operator relasional, operator logika juga melakukan operasi secara elemen per elemen.
Namun, operator NOT hanya dapat diterapkan pada satu vektor dalam satu waktu atau pada hasil dari dua vektor.
!a
- TRUE
- FALSE
- TRUE
!b
- FALSE
- FALSE
- TRUE
Pada contoh di bawah, operator NOT berada di luar tanda kurung, yang berarti diterapkan pada hasil dari a dan b. Operator di bawah ini juga dapat disebut sebagai operator NOR (Not-OR).
!(a | b) # operator NOR
- FALSE
- FALSE
- TRUE
Sebelum beralih ke pernyataan kondisional, mari lakukan latihan kecil.
Anda memiliki tayangan tutorial DataCamp yang sama dalam bentuk vektor seperti yang didefinisikan di atas. Mari ekstrak elemen terakhir darinya menggunakan metode tail di R.
last <- tail(datacamp_views,1)
print (last)
[1] 64
Mari cari tahu apakah elemen terakhir di bawah 100 atau di atas 100.
last < 100 | last > 100
TRUE
Karena elemen terakhir di bawah 100, salah satu ekspresi memenuhinya, maka mengembalikan TRUE.
Mari beralih ke topik terakhir dari tutorial ini, yaitu pernyataan kondisional!
Pernyataan Kondisional
Sejauh ini, Anda sudah mempelajari operator relasional, yang memberi tahu bagaimana Objek R saling berhubungan, dan operator logika, yang memungkinkan Anda menggabungkan nilai logis. R menyediakan cara untuk menggabungkan semua operator ini dan menggunakan hasilnya untuk mengubah perilaku skrip R Anda. Dengan ini, mari masuk ke pernyataan if dan else.
Sintaks kondisi if didefinisikan sebagai berikut: if(condition){ // expression } Pernyataan if menerima sebuah kondisi (di dalam tanda kurung) yang dapat Anda kaitkan dengan operator relasional atau logika, dan jika kondisi tersebut bernilai TRUE maka kode R yang terkait dengan kondisi tersebut (di dalam kurung kurawal) akan dieksekusi. Sederhana, bukan?
Mari pahami dengan contoh.
Misalkan Anda memiliki variabel x yang bernilai -10, sekarang Anda akan memberi kondisi yang memeriksa apakah x lebih besar dari nol dan menegasikannya dengan operator NOT. Karena kondisinya TRUE, kode R di dalam kurung kurawal akan dieksekusi.
x <- -10
if (!x > 0){
print("x is a negative number")
}
[1] "x is a negative number"
Namun, jika Anda menghapus operator NOT, maka kondisinya akan menjadi FALSE, dan kode di dalam kurung kurawal tidak akan dieksekusi.
if (x > 0){
print("x is a positive number")
}
Sekarang mari pahami pernyataan else dengan bantuan sintaks. if(condition){ // expression1 }else{ // expression2 } Berbeda dengan pernyataan if, pernyataan else tidak memerlukan kondisi eksplisit, melainkan harus digunakan bersama dengan pernyataan if. Kode R yang terkait dengan pernyataan else hanya dieksekusi jika kondisi pada pernyataan if` tidak bernilai TRUE.
Mari ambil contoh pernyataan if yang sama untuk memahami pernyataan else.
x <- -10
if (x > 0){
print("x is a positive number")
}else{
print("x is a negative number")
}
[1] "x is a negative number"
Pada contoh di atas, karena pernyataan if tidak valid, maka pernyataan else dijalankan.
Serupa dengan pernyataan if dan else, ada pernyataan else if yang berada di antara if dan else. Ini dieksekusi saat kondisi pernyataan if tidak terpenuhi. Singkatnya, pernyataan else diberi prioritas terakhir. if(condition){ // expression1 }else if(condition){ // expression2 }else{ // expression3 }
x <- 0
if (x > 0){
print("x is a positive number")
}else if (x == 0){
print("x is zero")
}else{
print("x is a negative number")
}
[1] "x is zero"
Salah satu alasan utama kita menggunakan pernyataan else if adalah ketika kondisi yang ada tidak saling eksklusif, artinya dapat terjadi pada waktu yang sama. Mari lihat contohnya.
x <- 12
if (x %% 3 == 0){
print("x is divisible by 3")
}else if (x %% 4 == 0){
print("x is divisible by 4")
}else{
print("x is neither divisible by 3 nor by 4")
}
[1] "x is divisible by 3"
Pada contoh di atas, kondisi if bernilai TRUE, sehingga R keluar dari struktur kendali dan tidak melanjutkan ke pernyataan berikutnya meskipun kondisi else if juga akan bernilai TRUE—kondisi tersebut tidak dijalankan. Namun, alih-alih pernyataan else if jika Anda menggunakan kondisi if lain, maka kondisi itu pun akan dijalankan.
Kesimpulan
Selamat telah menyelesaikan tutorial ini.
Tutorial ini merupakan titik awal yang baik bagi pemula yang ingin mempelajari bahasa pemrograman R. Sebagai latihan yang baik, Anda bisa menerapkan operator relasional dan logika sebagai kondisi dalam pernyataan kondisional.
Masih ada topik yang belum dibahas di R seperti Utilities di R dan Pembelajaran Mesin menggunakan R, yang akan dibahas dalam tutorial mendatang, jadi nantikan terus!
Silakan ajukan pertanyaan apa pun terkait tutorial ini di kolom komentar di bawah.
Jika Anda ingin mempelajari lebih lanjut tentang R, ikuti kursus Intermediate R dari DataCamp.

Operator Relasional
Operator relasional atau dikenal juga sebagai
comparatorsmembantu Anda melihat bagaimana satu Objek R berhubungan dengan objek R lainnya. Misalnya, Anda dapat memeriksa apakah dua objek sama atau tidak, yang dapat dilakukan dengan bantuan tanda==(sama dengan ganda). Operator logika yang bernilai TRUE di kedua sisi akan mengembalikan nilai logis TRUE karena TRUE sama dengan TRUE, seperti ditunjukkan di bawah ini.Namun, jika Anda memiliki TRUE di satu sisi dan FALSE di sisi lain, Anda akan mendapatkan nilai logis FALSE sebagai keluarannya.
Selain variabel logis, Anda dapat memeriksa kesetaraan tipe lain.
Mari bandingkan string dan angka.
ketidaksamaan, yang diberikan oleh tanda!-(kombinasi tanda seru diikuti sama dengan).Sekarang semua kondisi yang sebelumnya menghasilkan FALSE akan menjadi TRUE, mari kita cek!
Demikian pula, operator ketidaksamaan juga dapat digunakan untuk numerik dan Objek R lainnya seperti matriks, vektor, dan list.
Bagaimana jika Anda ingin memeriksa dari dua Objek R yang diberikan, mana yang lebih besar atau lebih kecil dari yang lain? Tentu bisa, menggunakan tanda
<dan>(kurang dari dan lebih dari).Mari lihat dulu contoh numerik.
Seperti yang Anda lihat, sudah jelas mengapa $2$ tidak lebih besar dari $10$ atau mengapa $-200$ lebih kecil dari $0$. Lalu, bagaimana dengan string atau karakter? Mari lihat bagaimana hal ini dapat dilakukan.
Tampaknya R memberikan preferensi pada urutan alfabet saat memutuskan string atau karakter mana yang lebih besar dari yang lain.
Pada contoh di bawah, karena
tdatang setelahRsesuai urutan alfabet; maka,tlebih besar dariR.Penting untuk dicatat bahwa di R dan hampir semua bahasa pemrograman, TRUE secara numerik diinterpretasikan sebagai 1 dan FALSE sebagai 0. Jadi berdasarkan analogi ini, TRUE akan lebih besar dari FALSE.
(>=)(atau lebih kecil dari atau sama dengan<=) objek R lainnya. Untuk mencapainya, Anda dapat menggunakan tanda kurang dari atau sama dengan dikombinasikan dengan tanda sama dengan. Artinya, jika salah satu dari dua kondisi (kurang dari atau sama dengan / lebih besar dari atau sama dengan) bernilai TRUE, maka keseluruhan kondisi akan bernilai TRUE.Anda dapat mempelajari tipe data R dalam tutorial DataCamp ini. Tutorial tersebut menunjukkan bahwa R cukup baik dalam menangani list, matriks, dan vektor.
Jadi, apakah comparator R dapat menangani vektor R? Mari kita cari tahu.
Misalnya, Anda memiliki vektor baris yang menyimpan catatan jumlah tayangan yang Anda dapatkan pada tutorial DataCamp terbaru selama 10 hari terakhir. Sekarang, Anda ingin mengetahui pada hari mana Anda menerima lebih dari atau sama dengan 100 tayangan. Anda dapat langsung menggunakan tanda lebih dari.
Seperti yang Anda lihat dari output di atas, untuk elemen pertama, keempat, ketujuh, dan kesembilan, hasilnya TRUE, yang berarti pada hari-hari tersebut, jumlah tayangan lebih dari atau sama dengan 100.
Demikian pula, Anda juga dapat membandingkan dua vektor atau bahkan dua matriks.
Dengan cara ini, Anda dapat membangun aplikasi sederhana untuk mengetahui kapan tayangan tutorial DataCamp Anda lebih banyak daripada tayangan video YouTube Anda atau sebaliknya.
Cara kerja ini di R adalah membandingkan kedua vektor secara elemen per elemen. Misalnya, pada output di bawah, jika Anda melihat elemen pertama dari kedua vektor, Anda dapat melihat bahwa vektor tayangan DataCamp bernilai 100, sedangkan vektor lainnya bernilai 10, sehingga mengembalikan TRUE.
Mari cepat bandingkan dua ekspresi numerik. Jika Anda ingat matematika dasar, ada aturan yang dikenal sebagai BODMAS (atau PEMDAS), yaitu tanda kurung, pangkat, pembagian, perkalian, penjumlahan, dan pengurangan yang menjadi dasar penyelesaian persamaan matematika. Jadi, Anda akan menggunakan aturan yang sama untuk menyelesaikan dua ekspresi R di bawah ini.