Tipe Data di R dengan Contoh
⚡ Ringkasan Cerdas
Tipe data di R mendefinisikan bagaimana nilai disimpan dalam memori, dan operator menentukan apa yang dapat dilakukan R dengan nilai tersebut. Vektor, variabel, aritmatika, relasional, logis, dan operator penugasan dibahas di sini dengan contoh yang dapat dijalankan.

Apa Tipe Data di R?
Berikut ini adalah Tipe Data atau Struktur Data dalam Pemrograman R:
- skalar
- Vektor (numerik, karakter, logis)
- Matriks
- Bingkai data
- daftar
Daftar itu mencampurkan dua ide yang terkait, dan memisahkannya akan mempermudah pemahaman bagian selanjutnya dari halaman ini. A tipe data menjelaskan apa itu nilai tunggal — sebuah angka, sepotong teks, sebuah BENAR atau SALAH. A struktur data Menjelaskan berapa banyak nilai yang disatukan dan dalam bentuk apa. Skalar, vektor, matriks, data frame, dan list adalah struktur; nilai-nilai di dalamnya masih termasuk dalam salah satu tipe dasar R.
| Structure | Ukuran | Tipe campuran diperbolehkan? | Penggunaan khas |
|---|---|---|---|
| Skalar | Vektor panjang-1 | Tidak | Satu ukuran atau indikator tunggal |
| vektor | 1 | Tidak | Kolom bacaan dari satu jenis |
| Matriks | 2 | Tidak | Kisi-kisi numerik dan aljabar linear |
| Kerangka data | 2 | Ya, satu jenis per kolom. | Kumpulan data tabular |
| Daftar | 1, tetapi dapat disarang | Ya, apa pun per elemen. | Hasil model dan kontainer campuran |
R tidak memiliki tipe skalar terpisah: skalar hanyalah vektor dengan panjang satu, itulah sebabnya banyak kode R ditulis untuk seluruh vektor sekaligus.
Tipe Data Dasar di R
Setiap nilai dalam R termasuk dalam salah satu dari sejumlah kecil tipe dasar (atomik):
- 4.5 adalah nilai desimal yang disebut numerik.
- Angka 4 terlihat seperti bilangan bulat, tetapi R tetap menyimpannya sebagai tipe data double. Tulis 4L jika bilangan bulat sebenarnya yang dibutuhkan.
- TRUE atau FALSE adalah nilai Boolean, yang disebut logical dalam R.
- Nilai di dalam ” ” atau ' ' adalah teks (sebuah string). Nilai-nilai tersebut disebut karakter.
Dua tipe tambahan melengkapi himpunan tersebut. Nilai kompleks seperti 3+2i menyimpan bagian riil dan imajiner, dan nilai mentah menyimpan byte. Keduanya jarang muncul dalam analisis sehari-hari, tetapi tercantum dalam basis R. dokumentasi typeof() di samping empat jenis umum lainnya.
| Tipe | Contoh nilai | kelas() mengembalikan | typeof() mengembalikan |
|---|---|---|---|
| logis | BENAR | logis | logis |
| Bilangan bulat | 4L | bilangan bulat | bilangan bulat |
| Double (numerik) | 4.5 | numerik | dua kali lipat |
| Karakter | "R itu Fantastis" | karakter | karakter |
| Kompleks | 3+2i | kompleks | kompleks |
| Mentah | as.raw(10) | mentah | mentah |
Kita dapat memeriksa tipe suatu variabel dengan menggunakan fungsi kelas.
Contoh 1: Memeriksa Variabel Numerik
# Declare variables of different types # Numeric x <- 28 class(x)
Keluaran:
## [1] "numeric"
Contoh 2: Memeriksa Variabel Karakter
# String y <- "R is Fantastic" class(y)
Keluaran:
## [1] "character"
Contoh 3: Memeriksa Variabel Logika
# Boolean z <- TRUE class(z)
Keluaran:
## [1] "logical"
Perhatikan bahwa class() menjawab "numeric" untuk 28 meskipun 28 tidak memiliki bagian desimal. R menyimpannya sebagai double, dan hanya typeof() yang mengungkapkannya. Perbedaan selanjutnya yang perlu dipelajari adalah bagaimana nilai-nilai tersebut diberi nama.
Variabel dalam R
Variabel adalah salah satu blok bangunan dasar di R yang menyimpan nilai, dan sangat penting bagi siapa pun yang melakukan pekerjaan ilmu data. Sebuah variabel di R dapat menyimpan angka, objek, hasil statistik, vektor, kumpulan data, atau prediksi model — pada dasarnya apa pun yang dihasilkan R. Kita dapat menggunakan variabel tersebut nanti hanya dengan memanggil nama variabel tersebut.
Untuk mendeklarasikan variabel di R, kita perlu memberikan nama variabel. Nama tersebut tidak boleh mengandung spasi. Kita dapat menggunakan _ untuk menggabungkan dua kata.
Nama variabel dapat berisi huruf, angka, titik, dan garis bawah, tetapi harus diawali dengan huruf atau titik, dan kata-kata yang dicadangkan seperti TRUE, FALSE, dan NULL tidak dapat digunakan sebagai nama. Untuk menambahkan nilai ke variabel, gunakan <- atau =.
Berikut sintaksnya:
# First way to declare a variable: use the `<-` name_of_variable <- value # Second way to declare a variable: use the `=` name_of_variable = value
Pada baris perintah, kita dapat menulis kode berikut untuk melihat apa yang terjadi:
Contoh 1: Menetapkan Nilai dan Mencetaknya
# Print variable x
x <- 42
x
Keluaran:
## [1] 42
Contoh 2: Mendeklarasikan Variabel Kedua
y <- 10 y
Keluaran:
## [1] 10
Contoh 3: Menggunakan Dua Variabel dalam Satu Ekspresi
# We call x and y and apply a subtraction
x-y
Keluaran:
## [1] 32
Variabel yang menyimpan beberapa nilai dengan tipe yang sama disebut vektor, yang merupakan struktur yang diharapkan oleh hampir semua fungsi R.
Vektor di R
Vektor adalah koleksi satu dimensi di mana setiap elemen memiliki tipe yang sama. Kita dapat membuat vektor dengan semua tipe data dasar R yang telah dipelajari sebelumnya. Cara paling sederhana untuk membuat vektor di R adalah dengan menggunakan fungsi c().
Contoh 1: Membuat Vektor Numerik
# Numerical
vec_num <- c(1, 10, 49)
vec_num
Keluaran:
## [1] 1 10 49
Contoh 2: Membuat Vektor Karakter
# Character vec_chr <- c("a", "b", "c") vec_chr
Keluaran:
## [1] "a" "b" "c"
Contoh 3: Membuat Vektor Logika
# Boolean vec_bool <- c(TRUE, FALSE, TRUE) vec_bool
Keluaran:
##[1] TRUE FALSE TRUE
Jika c() menerima campuran tipe data, fungsi tersebut tidak akan gagal. Fungsi tersebut secara diam-diam akan mengubah setiap elemen menjadi tipe data yang paling umum, sehingga c(1, "a", TRUE) menjadi vektor karakter. Kita juga dapat melakukan perhitungan aritmatika pada vektor di R.
Contoh 4: Menjumlahkan Dua Vektor Elemen demi Elemen
# Create the vectors vect_1 <- c(1, 3, 5) vect_2 <- c(2, 4, 6) # Take the sum of A_vector and B_vector sum_vect <- vect_1 + vect_2 # Print out total_vector sum_vect
Keluaran:
[1] 3 7 11
Penambahan tersebut dilakukan elemen demi elemen karena kedua vektor memiliki panjang yang sama. Ketika panjangnya berbeda, R akan menggunakan kembali vektor yang lebih pendek, mengulanginya hingga sama dengan vektor yang lebih panjang, dan hanya akan memberikan peringatan jika panjang vektor yang lebih panjang bukan kelipatan dari vektor yang lebih pendek.
Contoh 5: Iris Lima Elemen Pertama
Di R, dimungkinkan untuk memotong vektor. Pada beberapa kesempatan, kita hanya tertarik pada lima elemen pertama dari sebuah vektor. Kita dapat menggunakan perintah [1:5] untuk mengekstraknya.tracnilai 1 sampai 5.
# Slice the first five rows of the vector
slice_vector <- c(1,2,3,4,5,6,7,8,9,10)
slice_vector[1:5]
Keluaran:
## [1] 1 2 3 4 5
Contoh 6: Membangun Rentang dengan Tanda Titik Dua Operator
Cara tercepat untuk membuat rentang nilai adalah dengan menggunakan operator titik dua (:) di antara dua angka. Misalnya, dari contoh di atas, kita dapat menulis c(1:10) untuk membuat vektor nilai dari satu hingga sepuluh.
# Faster way to create adjacent values
c(1:10)
Keluaran:
## [1] 1 2 3 4 5 6 7 8 9 10
Karena vektor secara diam-diam mengubah tipenya ketika dicampur, ada baiknya mengetahui cara memeriksa dan mengkonversi tipe sesuai kebutuhan.
Cara Memeriksa dan Mengonversi Tipe Data di R
Tiga kelompok fungsi menjawab tiga pertanyaan yang selalu muncul: apa ini, apakah ini tipe tertentu, dan apakah ini bisa menjadi tipe lain.
| Keluarga fungsi | Pertanyaan itu menjawab | contoh |
|---|---|---|
| kelas(), tipe(), mode() | Nilai ini bertipe apa? | kelas(28), tipe(28), mode(28) |
| adalah.*() | Apakah nilai ini bertipe X? | adalah numerik(), adalah karakter(), adalah logika() |
| sebagai.*() | Bisakah nilai ini menjadi tipe X? | as.numeric(), as.character(), as.integer() |
| str() | Seperti apa bentuk objek ini secara keseluruhan? | str(vec_num) |
# Three different views of the same value x <- 28 class(x) # "numeric" -- the class used for method dispatch typeof(x) # "double" -- how R stores the value internally mode(x) # "numeric" -- the older S-style mode # Ask a yes/no question about a type is.numeric(x) # TRUE is.character(x) # FALSE # Convert between types as.character(x) # "28" as.integer("28") # 28 stored as an integer as.numeric("abc") # NA, with a coercion warning
Dua aturan menjelaskan sebagian besar kejutan di sini. Pertama, `class()` melaporkan kelas yang digunakan untuk pengiriman metode sementara `typeof()` melaporkan penyimpanan internal, itulah sebabnya 28 adalah "numerik" untuk satu dan "double" untuk yang lain. Kedua, konversi yang tidak dapat berhasil tidak menghentikan skrip: `as.numeric("abc")` mengembalikan `NA` dan mencetak peringatan konversi, jadi `NA` yang tidak ditampilkan setelah impor hampir selalu merupakan masalah tipe. Logika yang sama juga berlaku. faktor, yang menyimpan kategori sebagai kode bilangan bulat ditambah tabel level.
Setelah jenis-jenisnya ditentukan, langkah selanjutnya adalah operator yang menjalankannya.
R Aritmatika Operatorso
Pertama-tama kita akan melihat operator aritmatika dasar di R. Berikut adalah operator aritmatika dalam pemrograman R dan artinya:
| Operator | Deskripsi |
|---|---|
| + | Tambahan |
| - | Subtracproduksi |
| * | Perkalian |
| / | Divisi |
| ^ atau ** | Eksponensiasi |
| %% | Modulo (sisa setelah pembagian) |
| %/% | Pembagian bilangan bulat (hasil bagi, sisa diabaikan) |
Setiap operator ini di-vektorisasi, sehingga ekspresi yang sama dapat bekerja pada satu nilai atau pada seluruh kolom.
Contoh 1: Penjumlahan
# An addition
3 + 4
Keluaran:
## [1] 7
Anda dapat dengan mudah menyalin dan menempelkan kode R di atas ke dalam RStudio Konsol. Pada artikel ini, output ditampilkan pada baris yang diawali dengan ##. Misalnya, jika kita menulis kode print("Guru99") konsol mencetak [1] "Guru99", yang akan ditampilkan halaman ini sebagai ## [1] "Guru99 ".
Tanda ## menandai baris keluaran yang dicetak, dan angka di dalam tanda kurung siku ([1]) adalah indeks nilai pertama pada baris tersebut, bukan bagian dari hasilnya.
Kalimat yang diawali dengan # adalah komentar. Kita dapat menggunakan # di dalam skrip R untuk menambahkan catatan apa pun yang kita inginkan, dan R akan mengabaikannya saat dijalankan.
Contoh 2: Perkalian
# A multiplication
3*5
Keluaran:
## [1] 15
Contoh 3: Pembagian
# A division
(5+5)/2
Keluaran:
## [1] 5
Contoh 4: Eksponensiasi
# Exponentiation
2^5
Keluaran:
## [1] 32
Contoh 5: Modulo
# Modulo
28%%6
Keluaran:
## [1] 4
Operasi aritmatika menghasilkan angka. Kelompok operator berikutnya menghasilkan TRUE dan FALSE sebagai gantinya.
R Relasional (Perbandingan) Operatorso
Operator relasional membandingkan dua nilai dan mengembalikan hasil logis. Operator ini membangun kondisi yang digunakan untuk penyaringan, dan divetorisasi dengan cara yang sama persis seperti operator aritmatika.
| Operator | Deskripsi |
|---|---|
| > | Lebih besar dari |
| < | Less dari |
| >= | Lebih dari atau sama dengan |
| <= | Less dari atau sama dengan |
| == | Sama persis dengan |
| != | Tidak sebanding dengan |
a <- 10 b <- 3 a > b # TRUE a < b # FALSE a >= 10 # TRUE a <= 3 # FALSE a == b # FALSE a != b # TRUE # Relational operators are vectorised scores <- c(45, 78, 90, 62) scores >= 60 # FALSE TRUE TRUE TRUE
Dua kebiasaan ini menghemat waktu. Gunakan == untuk perbandingan dan <- untuk penugasan, karena tanda = tunggal di dalam kondisi adalah kesalahan umum pemula. Dan hindari == pada bilangan desimal: pembulatan bilangan desimal berarti 0.1 + 0.2 == 0.3 adalah FALSE, jadi isTRUE(all.equal(0.1 + 0.2, 0.3)) adalah pengujian yang aman. Perbandingan pada kerangka data yang diurutkan Ikuti aturan yang sama.
R Logis Operatorso
Dengan operator logika, kita ingin mengembalikan nilai di dalam vektor berdasarkan kondisi logika. Tabel di bawah ini mencantumkan operator logika yang tersedia di R.
Pernyataan logis dalam R dibungkus di dalam tanda kurung siku []. Kita dapat menambahkan pernyataan kondisional sebanyak yang kita inginkan, tetapi kita perlu menyertakannya dalam tanda kurung. Kita dapat mengikuti struktur ini untuk membuat pernyataan kondisional:
variable_name[(conditional_statement)]
Dengan `variable_name` mengacu pada variabel yang ingin kita gunakan untuk pernyataan tersebut, kita membuat pernyataan logis, misalnya `variable_name > 0`. Terakhir, kita menggunakan tanda kurung siku untuk menyelesaikan pernyataan logis tersebut. Berikut adalah contoh pernyataan logis.
Contoh 1: Membandingkan Setiap Elemen Vektor
# Create a vector from 1 to 10
logical_vector <- c(1:10)
logical_vector>5
Keluaran:
## [1]FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
Pada output di atas, R membaca setiap nilai dan membandingkannya dengan pernyataan logical_vector>5. Jika nilainya lebih besar dari lima, maka kondisinya BENAR, jika tidak SALAH. R mengembalikan vektor yang berisi BENAR dan SALAH.
Contoh 2: Hanya Simpan Elemen yang Sesuai
Dalam contoh di bawah ini, kita ingin ...tract nilai-nilai yang hanya memenuhi syarat 'lebih besar dari lima'. Untuk itu, kita dapat membungkus syarat tersebut di dalam tanda kurung siku yang didahului oleh vektor yang berisi nilai-nilai tersebut.
# Print value strictly above 5
logical_vector[(logical_vector>5)]
Keluaran:
## [1] 6 7 8 9 10
Contoh 3: Menggabungkan Dua Kondisi
# Print 5 and 6
logical_vector <- c(1:10)
logical_vector[(logical_vector>4) & (logical_vector<7)]
Keluaran:
## [1] 5 6
Contoh 3 sengaja menggunakan ampersand tunggal &. Operator karakter tunggal & dan | membandingkan vektor elemen demi elemen dan mengembalikan vektor, yang dibutuhkan oleh subsetting. Bentuk ganda && dan || mengembalikan satu nilai dan termasuk dalam kondisi if() dan while(). Karena R 4.3.0Memberikan argumen yang lebih panjang dari satu elemen ke && atau || akan menghasilkan kesalahan, bukan peringatan, sehingga kedua kelompok operator tersebut tidak lagi dapat saling menggantikan. Operator ! meniadakan suatu kondisi, dan xor() memberikan operasi OR eksklusif.
Tugas R Operatorso
Operator penugasan mengikat nilai ke sebuah nama. R menawarkan lebih banyak operator penugasan daripada kebanyakan bahasa pemrograman, dan perbedaannya menjadi penting begitu kode masuk ke dalam proses pemrograman. fungsi.
| Operator | Deskripsi |
|---|---|
| <- | Penugasan kiri, pilihan idiomatik dalam R |
| = | Penugasan kiri, tetapi biasanya dikhususkan untuk argumen fungsi. |
| -> | Penugasan yang tepat, valid tetapi jarang digunakan |
| <<- | Penugasan super yang mencari lingkungan sekitarnya |
| - >> | Penugasan super yang tepat |
# Left assignment -- the idiomatic form count <- 5 # Equals sign: works, but reserve it for function arguments count = 5 round(3.14159, digits = 2) # Right assignment 5 -> count # Superassignment, used inside functions to reach an outer scope count <<- 5
Panduan gaya merekomendasikan penggunaan <- untuk membuat objek dan = untuk memberi nama argumen di dalam panggilan fungsi, karena kedua peran tersebut tetap terlihat berbeda secara visual. Gunakan <<- dengan hemat: ini mengubah objek di luar fungsi saat ini dan membuat kode lebih sulit dipahami. Setelah penugasan dan tipe data dipahami, langkah selanjutnya adalah... mengimpor data nyata dan reshaping dengan dplyr; itu Gambaran umum bahasa R Menempatkan seluruh rangkaian alat dalam konteks yang tepat.

