Menu

Variabel dan Assignment di R: <-, =, dan assign()

Cara membuat variabel di R dengan tanda panah <-, kapan = justru wajib dipakai, aturan penamaan, dan cara melihat serta menghapus variabel dengan ls() dan rm().

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Cara Membuat Variabel di R

Variabel di R adalah sebuah nama yang dilekatkan ke sebuah nilai. Kamu membuatnya dengan tanda panah assignment <-: namanya di depan panah, nilainya di belakang.

Tiga variabel, tiga jenis nilai yang berbeda, dan tidak ada deklarasi tipe sama sekali: R menyimpulkan tipenya dari nilai itu sendiri (selengkapnya di tipe data). Begitu sebuah variabel ada, kamu bisa memakainya di mana pun kamu akan memakai nilainya:

Assignment ulang bekerja dengan cara yang sama. Sebuah variabel dengan senang hati beralih ke nilai baru, bahkan tipe baru, begitu kamu melakukan assignment lagi:

R tidak protes ketika sebuah string berubah menjadi angka. Fleksibilitas ini praktis, tetapi kalau arti sebuah variabel bergeser di tengah script, biasanya itu tanda untuk memilih nama baru.

Kenapa R Memakai <- Alih-alih =

Inilah pertanyaan yang ditanyakan semua orang: age = 30 juga berhasil, jadi kenapa setiap buku R, panduan gaya, dan package memakai tanda panah?

Karena = di R adalah dua hal yang berbeda tergantung di mana ia muncul. Di tingkat atas, ia melakukan assignment. Di dalam pemanggilan fungsi, ia mencocokkan argumen berdasarkan nama, dan tidak membuat variabel:

Kalau kamu mencoba mean(values, na.rm <- TRUE), kamu tidak sengaja membuat variabel global bernama na.rm dan memberikan TRUE berdasarkan posisi: sah, salah, dan sulit ditemukan. Konvensi yang menjaga semuanya tetap mudah dibaca itu sederhana:

  • <- selalu berarti assignment.
  • = selalu berarti "argumen ini mendapat nilai ini" di dalam pemanggilan sebuah fungsi.

Ikuti pembagian itu, dan setiap baris R yang kamu baca langsung memberi tahu apakah sesuatu sedang dibuat atau diberikan. Inilah aturan gaya yang paling universal di dunia R; RStudio bahkan memberi <- shortcut keyboard sendiri (Alt+-).

Sepupu yang Jarang Dipakai: ->, =, dan assign()

R punya dua cara assignment lagi, keduanya layak dikenali meskipun jarang kamu tulis.

Panah terbalik -> melakukan assignment ke arah sebaliknya, nilainya dulu, namanya terakhir:

Sesekali kamu akan melihatnya di akhir pipeline yang panjang ("hitung semua ini, lalu simpan"), tetapi kebanyakan panduan gaya menyarankan untuk menghindarinya: pembaca mencari nama yang didefinisikan di awal baris.

assign() membuat variabel dari sebuah string, artinya namanya bisa dibuat saat program berjalan:

Ini terlihat cerdas, tetapi hampir selalu alat yang salah: sekumpulan variabel bernomor sebenarnya adalah vector atau list yang sedang menyamar. Pakai assign() hanya ketika sebuah nama memang harus dihitung; pasangannya, get("score"), membaca variabel berdasarkan nama string.

Aturan Penamaan

R menerima nama yang:

  • Berisi huruf, angka, titik (.), dan garis bawah (_).
  • Diawali huruf, atau titik yang tidak diikuti angka.
  • Bukan kata khusus (if, for, TRUE, NULL, function, dan beberapa lainnya).

Jadi semua ini valid:

Dan ini tidak:

  • 2nd_user: tidak boleh diawali angka.
  • _temp: juga tidak boleh diawali garis bawah (tidak seperti Python).
  • user-name: tanda hubung adalah pengurangan, bukan karakter nama.
  • TRUE: kata khusus.

Nama bersifat case sensitive: total, Total, dan TOTAL adalah tiga variabel yang tidak berhubungan, dan R tidak akan memperingatkanmu ketika salah ketik melahirkan variabel baru.

Melihat dan Menghapus: ls() dan rm()

Setiap variabel yang kamu buat masuk ke workspace (global environment). ls() mendaftar isinya, dan rm() menghapusnya:

Ada dua detail yang perlu diketahui. Pertama, rm(list = ls()) menghapus seluruh workspace: praktis di awal sesi eksplorasi, merusak di tempat lain. Kedua, nama yang diawali titik (seperti .cache) disembunyikan dari ls() kecuali kamu memanggil ls(all.names = TRUE), konvensi yang sama dengan file tersembunyi di Unix.

Konvensi Penamaan: Pakai snake_case

Di luar aturan wajib, komunitas R modern (dan panduan gaya tidyverse) sudah menyepakati beberapa konvensi:

  • lower_snake_case untuk variabel dan fungsi: retry_count, fit_model.
  • Titik di nama itu sah, tetapi kuno: R dasar penuh dengan nama dari era data.frame seperti my.data, tetapi titik juga punya arti di sistem method S3 milik R (print.data.frame adalah "method print untuk data frame"), jadi kode baru menghindarinya.
  • Tanpa awalan ala Hungarian, tanpa camelCase: kamu akan melihat camelCase di package lama, tetapi snake_case adalah pilihan akhir ekosistemnya.
  • R tidak punya konstanta sungguhan; konvensinya adalah menamai calon konstanta dengan huruf kapital (MAX_RETRIES <- 5) dan tidak melakukan assignment ulang padanya.

Pilih nama yang deskriptif dan tetap konsisten. avg_score hanya butuh empat ketikan lebih banyak daripada as, tetapi menyelamatkan setiap pembaca berikutnya dari keharusan menggulir kembali ke atas script.

Yang Perlu Kamu Ingat

  • name <- value membuat variabel; komunitas menyimpan = untuk argumen fungsi.
  • -> dan assign() memang ada; kamu akan lebih sering membacanya daripada seharusnya menulisnya.
  • Nama memakai huruf, angka, titik, dan garis bawah; tidak boleh diawali angka atau garis bawah, dan bersifat case sensitive.
  • ls() menampilkan workspace, rm() membersihkannya.
  • Tulis snake_case dan kodemu akan terlihat seperti R yang ditulis semua orang saat ini.

Berikutnya: jenis nilai apa yang sebenarnya disimpan variabel-variabel itu, yaitu numeric, integer, character, dan logical.

Pertanyaan yang sering diajukan

Bagaimana cara membuat variabel di R?

Tulis namanya, tanda panah assignment <-, lalu nilainya: age <- 30. R menentukan tipenya dari nilai itu, tanpa langkah deklarasi. age = 30 juga bisa di tingkat atas, tetapi konvensi komunitasnya adalah <-.

Apa bedanya <- dan = di R?

Di tingkat atas sebuah script, keduanya melakukan hal yang sama. Di dalam pemanggilan fungsi, tidak: mean(x, na.rm = TRUE) memakai = untuk mencocokkan argumen berdasarkan nama, bukan untuk membuat variabel. Karena = memainkan dua peran tergantung konteksnya, panduan gaya R menyimpan <- untuk assignment dan = untuk argumen.

Bagaimana cara menghapus variabel di R?

rm(x) menghapus variabel x dari workspace. rm(list = ls()) menghapus semuanya: berguna untuk memulai dari awal, berbahaya di tengah analisis. ls() mendaftar apa saja yang ada saat ini.

Apakah nama variabel R boleh mengandung titik?

Boleh: my.data adalah nama yang sepenuhnya sah, dan kode R lama memakai titik di mana-mana. Gaya modern lebih menyukai garis bawah (my_data) karena titik juga punya arti di sistem method S3 milik R, sehingga nama bertitik jadi ambigu saat dibaca.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai