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

Berikut kami coba dokumentasikan penggunaannya.

Rilis Pipe Baru

Dalam berita rilis pada bagian 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.

Penggunaan

Berikut contoh penggunaan. Saya 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 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, semuanya 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.

Rilis Fungsi Anonim Baru

Pada dasarnya penulisan fungsi adalah dengan function (x) ( ... ) yang pada rilis baru ini dapat dituliskan dengan \(x) .... Bila melihat ke sebelah, fungsi anonim ini layaknya lambda di python.

Vs Fungsi Lama

Bila menggunakan fungsi lama, kita bisa menyelesaikan masalah pipe di atas menggunakan cara sebagai berikut.

Fungsi lama cari_ing

Atau lebih singkat sebagai berikut.

fungsi in-place

Penerapan

Penerapan fungsi anonim yg baru ini lebih pendek.

fungsi baru in-place

Adopsi dalam kode

Walaupun sudah rilis beberapa bulan lalu, penerapan pipe dan fungsi baru ini belum banyak yang tahu, apalagi menggunakan dalam penerapan yang seringkali ada masalah stabilitas kode untuk level produksi. Penggunaan magrittr saya rasa masih unggul 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 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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *