% ...% operator
%>%
tidak memiliki arti bawaan tetapi pengguna (atau paket) bebas untuk menentukan operator formulir %whatever%
dengan cara apa pun yang mereka suka. Misalnya, fungsi ini akan mengembalikan string yang terdiri dari argumen kirinya diikuti dengan koma dan spasi dan kemudian argumen kanannya.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
Basis dari R menyediakan %*%
(mulitiplikasi matriks), %/%
(pembagian integer), %in%
(apakah lhs merupakan komponen dari rhs?), (Perkalian %o%
luar) dan %x%
(perkalian kronecker). Tidak jelas apakah %%
termasuk dalam kategori ini atau tidak, tetapi ini mewakili modulo.
expm Paket R, expm, mendefinisikan operator daya matriks %^%
. Untuk contoh lihat kekuatan Matrix di R .
operator Paket operator R telah mendefinisikan sejumlah besar operator seperti %!in%
(untuk tidak %in%
). Lihat http://cran.r-project.org/web/packages/operators/operators.pdf
Pipa
magrittr Dalam kasus %>%
paket magrittr R telah mendefinisikannya seperti yang dibahas dalam sketsa magrittr. Lihat http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr juga telah menetapkan sejumlah operator serupa lainnya. Lihat bagian Operator Pipa Tambahan dari tautan sebelumnya yang membahas %T>%
, %<>%
dan %$%
dan http://cran.r-project.org/web/packages/magrittr/magrittr.pdf untuk lebih jelasnya.
dplyr Paket dplyr R digunakan untuk mendefinisikan %.%
operator yang serupa; Namun, ini sudah tidak digunakan lagi dan sekarang dplyr merekomendasikan agar pengguna menggunakan %>%
dplyr yang diimpor dari magrittr dan membuatnya tersedia untuk pengguna dplyr. Seperti yang disebutkan David Arenburg dalam komentar, pertanyaan SO ini membahas perbedaan antara itu dan magrittr %>%
: Perbedaan antara%.% (Dplyr) dan%>% (magrittr)
pipeR Paket R, pipeR, mendefinisikan %>>%
operator yang mirip dengan%>% magrittr dan dapat digunakan sebagai alternatif untuk itu. Lihat http://renkun.me/pipeR-tutorial/
Paket pipeR juga telah menentukan sejumlah operator serupa lainnya. Lihat: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic Paket postlogic ditentukan %if%
dan %unless%
operator.
wrapr Paket R, wrapr, mendefinisikan pipa titik %.>%
yang merupakan versi eksplisit %>%
yang tidak melakukan penyisipan argumen implisit tetapi hanya menggantikan penggunaan titik secara eksplisit di sisi kanan. Ini dapat dianggap sebagai alternatif lain untuk %>%
. Lihat https://winvector.github.io/wrapr/articles/dot_pipe.html
Pipa Bizarro . Ini sebenarnya bukan sebuah pipa melainkan beberapa sintaks dasar yang cerdas untuk bekerja dengan cara yang mirip dengan pipa tanpa benar-benar menggunakan pipa. Ini dibahas di http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ Idenya adalah bahwa alih-alih menulis:
1:8 %>% sum %>% sqrt
## [1] 6
salah satunya menulis sebagai berikut. Dalam hal ini kami secara eksplisit menggunakan titik daripada menghilangkan argumen titik dan mengakhiri setiap komponen pipa dengan tugas ke variabel yang namanya titik ( .
). Kami mengikuti itu dengan titik koma.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Perbarui info yang ditambahkan pada paket expm dan contoh yang disederhanakan di atas. Menambahkan paket postlogic.
?'%>%'