Apakah Anda tahu? Sejak R.4.1.0 diperkenalkan pipe |>
sebagai bawaan. Seperti halnya %>%
di paket magrittr
. Membuat kode menjadi lebih pendek dan efisien.
Pada artikel ini kami coba mendokumentasikan penggunaan sintaks ini.
Rilis Pipe Baru
Dalam laman berita rilis, pada bagian versi 4.1.0 disebutkan bahwa:
“R now provides a simple native forward pipe syntax
R News|>
. The simple form of the forward pipe inserts the left-hand side as the first argument in the right-hand side call. The pipe implementation as a syntax transformation was motivated by suggestions from Jim Hester and Lionel Henry.“
Contoh Penggunaan
Pada bagian ini kami coba memberikan contoh penggunaan. Kami menggunakan R versi 4.1.2 yang telah dirilis awal bulan kemarin (1 November 2021).
Vs magrittr
Seperti telah diketahui bahwa magrittr sudah memperkenalkan pipe %>%
sejak 2014. Dengan penerapan pipe ini baris perintah menjadi dapat lebih efisien. Misal: melakukan pivot group_by
dengan paket dplyr
.
Bandingkan bila harus menyimpan terlebih dahulu menjadi dataset, selain lebih efisien dalam hal penulisan juga dalam hal memory yang digunakan dalam pemrosesan.
Kekurangan
Pipe baru ini memang tidak berniat akan mematikan pipe dari magrittr
yang telah berkembang luas, terlihat dari batasan yang tidak membuat pipe native ini dalam penerapannya. Yang utama sangat terlihat adalah penerapan anggapan sisi kanan sebagai fungsi secara otomatis.
Pipe yang baru tidak otomatis bisa menggunakannya, yang digunakan harus berupa fungsi. Selain itu pada pipe yang baru peletakan lemparan ke kanan tidak ada atau otomatis dimasukkan ke argumen/parameter pertama.
Untuk bisa melakukannya dengan lebih efisien, pengembang core menambah fungsi anonim. Bagian berikut nya ini akan menjelaskan bagaimana membuatnya.
Rilis Fungsi Anonim Baru
Pada dasarnya penulisan fungsi pada R adalah dengan pernyataan function (x) ( ... )
dimana pada rilis baru ini dapat dituliskan dengan \(x) ...
. Bila melihat ke metode pemrograman yang lain, fungsi anonim ini layaknya lambda
di python.
Vs Fungsi Lama
Bila menggunakan fungsi yang telah ada, kita bisa menyelesaikan masalah pipe di atas menggunakan cara sebagai berikut.
Atau kode yang lebih efisien bisa menggunakan penulisan sintaks sebagai berikut.
Penerapan
Penerapan fungsi anonim yang baru ini menjadi lebih pendek.
Adopsi dalam kode
Walaupun sudah rilis beberapa bulan lalu, penerapan pipe dan fungsi baru ini belum banyak yang mengetahuinya, apalagi menggunakan dalam penerapan yang seringkali tertahan karena masalah stabilitas kode untuk level produksi. Penggunaan magrittr
saya rasa masih unggul dalam jumlah besar.
Sekedar saran, bila akan mengadopsi hal baru semacam pipe dan fungsi ini juga perlu adanya riset mengenai interoperabilitas dengan paket-paket yang digunakan serta penelusuran detail dan pengubahan kode yang mendukung.
Tambahan: Dukungan RStudio
RStudio sudah mendukung pipe baru ini untuk menggantikan pipe magrittr yang digunakan sebelumnya dengan short-cut Ctrl+Shift+M
. Untuk mengubahnya silakan ke menu Options, Code, Editing dan cek pada Use native pipe operator, |> … .
