R Sintaks Pipe dan Fungsi Baru di 4.1.x

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 |>. 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.

R News

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).

New Pipe!

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.

dplyr: mtcars group_by cyl

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.

mtcars head

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.

grepl ing …

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.

Fungsi lama cari_ing

Atau kode yang lebih efisien bisa menggunakan penulisan sintaks sebagai berikut.

fungsi in-place

Penerapan

Penerapan fungsi anonim yang baru ini menjadi lebih pendek.

fungsi baru in-place

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, |> … .

rstudio new pipe support

Leave a Reply

Your email address will not be published.