% ...% operatori
%>%
non ha alcun significato incorporato ma l'utente (o un pacchetto) è libero di definire gli operatori del modulo %whatever%
nel modo che preferisce. Ad esempio, questa funzione restituirà una stringa composta dal suo argomento a sinistra seguito da una virgola e uno spazio e quindi dall'argomento di destra.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
La base di R fornisce %*%
(moltiplicazione di matrici), %/%
(divisione intera), %in%
(lhs è un componente di rhs?), %o%
(Prodotto esterno) e %x%
(prodotto kronecker). Non è chiaro se %%
rientri o meno in questa categoria ma rappresenta il modulo.
expm Il pacchetto R, expm, definisce un operatore di potenza a matrice %^%
. Per un esempio vedere il potere Matrix in R .
operatori Il pacchetto R degli operatori ha definito un gran numero di tali operatori come %!in%
(per non %in%
). Vedi http://cran.r-project.org/web/packages/operators/operators.pdf
Pipes
magrittr Nel caso del %>%
pacchetto magrittr R lo ha definito come discusso nella vignetta magrittr. Vedi http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr ha anche definito una serie di altri operatori simili. Vedere la sezione Operatori di tubi aggiuntivi del collegamento precedente che discute %T>%
, %<>%
e %$%
e http://cran.r-project.org/web/packages/magrittr/magrittr.pdf per ulteriori dettagli.
dplyr Il pacchetto dplyr R utilizzato per definire un %.%
operatore simile; tuttavia, è stato deprecato e dplyr ora consiglia agli utenti di utilizzare %>%
quale dplyr importa da magrittr e rende disponibile all'utente dplyr. Come ha menzionato David Arenburg nei commenti, questa domanda SO discute le differenze tra esso e magrittr %>%
: differenze tra%.% (Dplyr) e%>% (magrittr)
pipeR Il pacchetto R, pipeR, definisce un %>>%
operatore che è simile a%>% di magrittr e può essere usato come alternativa ad esso. Vedi http://renkun.me/pipeR-tutorial/
Il pacchetto pipeR ha anche definito una serie di altri operatori simili. Vedi: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
postlogic Il pacchetto postlogic definito %if%
e gli %unless%
operatori.
wrapr Il pacchetto R, wrapr, definisce un dot pipe %.>%
che è una versione esplicita di %>%
in quanto non esegue l'inserimento implicito di argomenti ma sostituisce solo gli usi espliciti di punto sul lato destro. Questo può essere considerato come un'altra alternativa a %>%
. Vedi https://winvector.github.io/wrapr/articles/dot_pipe.html
Pipa bizarro . Questa non è realmente una pipe, ma piuttosto una sintassi di base intelligente per funzionare in modo simile alle pipe senza effettivamente usare le pipe. È discusso in http://www.win-vector.com/blog/2017/01/using-the-bizarro-pipe-to-debug-magrittr-pipelines-in-r/ L'idea è che invece di scrivere:
1:8 %>% sum %>% sqrt
## [1] 6
si scrive quanto segue. In questo caso usiamo esplicitamente punto invece di elidere l'argomento punto e terminiamo ogni componente della pipeline con un assegnamento alla variabile il cui nome è punto ( .
). Lo seguiamo con un punto e virgola.
1:8 ->.; sum(.) ->.; sqrt(.)
## [1] 6
Aggiorna Aggiunte informazioni sul pacchetto expm ed esempio semplificato in alto. Aggiunto pacchetto postlogic.
?'%>%'