Operator Penugasan dan Khusus
Jelajahi >, %in%, dan operator pipe dalam R.
Operator Penugasan dan Khusus adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar R Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus R Academy mencakup 4 pelajaran total.
Penugasan dalam R
R memiliki beberapa cara untuk menetapkan nilai ke variabel. Cara yang paling sesuai dengan kebiasaan R adalah <-, yang merupakan gaya pilihan. Anda juga akan menjumpai = untuk penugasan, meskipun perilakunya sedikit berbeda dalam konteks tertentu.
# Both assign a value, <- is preferred
name <- 'Alice'
age = 30
cat('Name:', name, '
')
cat('Age:', age, '
')Panah Kiri <- vs Sama dengan =
<- selalu membuat variabel di lingkungan saat ini. = juga dapat digunakan untuk melakukan penugasan, tetapi di dalam pemanggilan fungsi, operator ini menetapkan argumen bernama, bukan membuat variabel. Perbedaan ini penting.
# <- creates a variable outside function calls
x <- 42
# = inside function call sets argument, does NOT create x
mean(x = c(1, 2, 3)) # x is an arg here, not a variable
# But <- inside a function call DOES create a variable
mean(y <- c(1, 2, 3)) # y is now also in workspace
cat('y was created:', y, '
')Operator Penugasan Kanan ->
R juga mendukung penugasan dari kanan ke kiri dengan ->. Operator ini menetapkan sisi kiri ke nama di sisi kanan. Meskipun valid, operator ini jarang digunakan dalam praktik karena mengurangi keterbacaan.
# Right assignment operator
100 -> max_score
'R Programming' -> course_name
cat('Max score:', max_score, '
')
cat('Course:', course_name, '
')
# Same as:
# max_score <- 100
# course_name <- 'R Programming'Penugasan Global dengan <<-
<<- menetapkan nilai ke sebuah variabel di lingkungan induk (yang mencakup), bukan di lingkungan lokal fungsi. Operator ini digunakan di dalam fungsi untuk mengubah variabel yang berada di luar fungsi tersebut.
counter <- 0
increment <- function() {
counter <<- counter + 1 # modifies the global counter
}
increment()
increment()
increment()
cat('Counter after 3 increments:', counter, '
')Operator Keanggotaan %in%
%in% menguji apakah setiap elemen di sisi kiri muncul dalam vektor di sisi kanan. Operator ini mengembalikan vektor logika dengan panjang yang sama seperti operan kiri. Ini adalah cara paling jelas untuk menguji keanggotaan dalam himpunan di R.
fruits <- c('apple', 'banana', 'cherry', 'date', 'elderberry')
# Check membership
cat('Is mango in fruits?', 'mango' %in% fruits, '
')
cat('Is cherry in fruits?', 'cherry' %in% fruits, '
')
# Check multiple values at once
search <- c('banana', 'mango', 'date')
cat('Which are in fruits:', search %in% fruits, '
')Pemfilteran dengan %in%
%in% sangat bermanfaat ketika digunakan untuk memfilter vektor atau baris bingkai data. Operator ini memungkinkan Anda memilih elemen yang termasuk dalam himpunan nilai yang diizinkan dan telah ditentukan sebelumnya.
countries <- c('USA', 'UK', 'Canada', 'Germany', 'France', 'Japan')
populations <- c(331, 67, 38, 83, 67, 126) # millions
# Keep only G7 European members
g7_europe <- c('UK', 'Germany', 'France', 'Italy')
mask <- countries %in% g7_europe
cat('G7 Europe countries:', countries[mask], '
')
cat('Populations:', populations[mask], '
')Perkalian Matriks dengan %*%
%*% melakukan perkalian matriks yang sebenarnya (hasil kali titik), berbeda dari * yang mengalikan elemen satu per satu. Untuk dua matriks A (m x n) dan B (n x p), hasilnya adalah matriks berukuran (m x p).
A <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2)
B <- matrix(c(5, 6, 7, 8), nrow = 2, ncol = 2)
cat('Matrix A:
')
print(A)
cat('Matrix B:
')
print(B)
cat('A %*% B (matrix mult):
')
print(A %*% B)
cat('A * B (element-wise):
')
print(A * B)Pipa Bawaan |>
Diperkenalkan pada R 4.1, pipa bawaan |> meneruskan hasil ekspresi di sisi kiri sebagai argumen pertama fungsi di sisi kanan. Pipa ini membuat rangkaian operasi jauh lebih mudah dibaca.
# Without pipe
result1 <- round(sqrt(abs(-16)), 2)
cat('Without pipe:', result1, '
')
# With native pipe |>
result2 <- -16 |> abs() |> sqrt() |> round(2)
cat('With pipe:', result2, '
')
# Reading left to right: take -16, get abs, sqrt, then roundPipa dengan Vektor
Pipa bawaan |> sangat berguna untuk vektor dan operasi numerik. Anda dapat merangkai transformasi tanpa membuat variabel perantara, sehingga kode menjadi lebih rapi dan mudah diikuti.
scores <- c(88, 45, 92, 61, 73, 55, 84, 79)
# Chain: keep passing scores, then compute mean
passing_mean <- scores |> \(x) x[x >= 60] |> mean()
cat('Mean of passing scores:', round(passing_mean, 2), '
')
# Another chain: sort, reverse, take top 3
top3 <- scores |> sort(decreasing = TRUE) |> head(3)
cat('Top 3 scores:', top3, '
')Operator Infix Kustom
R memungkinkan Anda mendefinisikan operator infix kustom menggunakan sintaks %name%. Beginilah paket seperti dplyr mendefinisikan pipa %>%. Anda dapat membuat operator sendiri untuk operasi khusus domain.
# Define a custom infix operator for 'not in'
'%notin%' <- function(x, table) !(x %in% table)
cities <- c('Paris', 'London', 'Berlin', 'Tokyo', 'Sydney')
exclude <- c('Tokyo', 'Sydney')
cat('Cities not in exclude list:', cities[cities %notin% exclude], '
')Referensi Singkat Operator
Berikut ringkasan operator khusus yang dibahas dalam pelajaran ini:
<-— penugasan standar (yang disarankan)=— penugasan (juga digunakan untuk argumen fungsi)<<-— penugasan ke lingkungan global/induk%in%— pengujian keanggotaan%*%— perkalian matriks|>— pipa bawaan (R 4.1+)%name%— sintaks operator infix kustom
# Demonstrate %in% as a filter
all_nums <- 1:20
special <- c(3, 6, 9, 12, 15, 18)
cat('Multiples of 3 up to 20:', all_nums[all_nums %in% special], '
')
# Demonstrate pipe
1:10 |> mean() |> cat('
')Pemeriksaan Singkat
Apa yang dikembalikan operator %in% ketika digunakan sebagai c(2, 4, 6) %in% c(1, 2, 3)?
Rangkuman: Operator Khusus
Bagus sekali! Berikut inti pembelajaran dari pelajaran ini:
- Gunakan
<-untuk penugasan — ini adalah konvensi R =dapat digunakan untuk penugasan, tetapi bersifat ambigu di dalam pemanggilan fungsi<<-mengubah variabel di lingkungan induk (global) dari dalam fungsi%in%adalah cara paling jelas untuk menguji keanggotaan dalam himpunan di R%*%melakukan perkalian matriks (bukan perkalian elemen per elemen)- Pipa bawaan
|>(R 4.1+) merangkai pemanggilan fungsi dari kiri ke kanan agar kode mudah dibaca - Operator kustom mengikuti pola
%name%
# Pipe + %in% combined
data <- c(5, 12, 3, 8, 15, 7, 20, 1)
valid_range <- 5:15
result <- data |> \(x) x[x %in% valid_range] |> sort()
cat('Values in range 5-15:', result, '
')Belajar R dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 43
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Operator Penugasan dan Khusus” gratis?
Ya — teks lengkap “Operator Penugasan dan Khusus” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus R Academy, upgrade ke CoddyKit PRO. Kursus R Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Operator Penugasan dan Khusus”?
Jelajahi >, %in%, dan operator pipe dalam R. Kamu berlatih R Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai R Academy?
Tidak diperlukan pengalaman sebelumnya. R Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Operator Penugasan dan Khusus” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Operator Aritmetika dan Perbandingan
- Operator Logika dan Logika Boolean
- Operator Penugasan dan Khusus
- Prioritas Operator dan Ekspresi Kompleks