Ho visto l'uso della funzione %>%
(cento percento superiore) in alcuni pacchetti come dplyr e rvest. Cosa significa? È un modo per scrivere blocchi di chiusura in R?Che cosa significa%>% significa in R?
Grazie
Ho visto l'uso della funzione %>%
(cento percento superiore) in alcuni pacchetti come dplyr e rvest. Cosa significa? È un modo per scrivere blocchi di chiusura in R?Che cosa significa%>% significa in R?
Grazie
% ...% operatori. %>%
non ha un significato incorporato ma l'utente (o un pacchetto) è libero di definire gli operatori del modulo %whatever%
in qualsiasi modo. Ad esempio, questa funzione restituirà una stringa composta dal suo argomento di sinistra seguito da una virgola e spazio e quindi è l'argomento di destra.
"%,%" <- function(x, y) paste0(x, ", ", y)
# test run
"Hello" %,% "World"
## [1] "Hello, World"
La base di R fornisce %*%
(matrice mulitiplication), %/%
(divisione intera), %in%
(ss è un componente del sd?), %o%
(prodotto esterno) e %x%
(prodotto Kronecker). Non è chiaro se %%
rientra in questa categoria o meno ma rappresenta modulo.
magrittr Nel caso di %>%
il pacchetto magrittr R lo ha definito come descritto nella vignetta magrittr. Vedi http://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html
magittr ha anche definito un numero di altri operatori di questo tipo. Vedere la sezione Additional Pipe Operators del link precedente che tratta di %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 %>%
che dplyr importa da magrittr e rende disponibile all'utente dplyr. Come David Arenburg ha evidenziato nel commentare questa domanda SO discute le differenze tra questo e magrittr di %>%
: Differences between %.% (dplyr) and %>% (magrittr)
Piper Il pacchetto R, Piper, definisce un operatore %>>%
che è simile a% di magrittr>%. Vedi http://renkun.me/pipeR-tutorial/
Anche il pacchetto pipeR ha definito un numero di altri operatori di questo tipo. Vedi: http://cran.r-project.org/web/packages/pipeR/pipeR.pdf
wrapr Il pacchetto R, wrapr, definisce un condotto dot %.>%
che è una versione esplicita di %>%
in quanto non fa inserimento implicito di argomenti ma sostituisce soltanto usi espliciti del punto sul lato destro . Vedere https://winvector.github.io/wrapr/articles/dot_pipe.html
EXPM Il pacchetto R, EXPM, definisce una matrice operatore potenza %^%
. Per un esempio vedere Matrix power in R.
operatori Il pacchetto operatori R ha definito un gran numero di tali operatori come %!in%
(per non %in%
).Vedi http://cran.r-project.org/web/packages/operators/operators.pdf
Aggiornamento Informazioni aggiunte su pacchetto expm e esempio semplificato in alto.
Vedo anche:% <>%,% T>%,% $%, che cosa fanno? http://rpackages.ianhowson.com/cran/magrittr/man/pipe.html – pluke
Da R dopo aver caricato magrittr ottieni aiuto usando: '?"% <>% "', ecc. –
La mia comprensione dopo la lettura di link offered by G.Grothendieck è che%>% è un operatore che esegue il pipe per migliorare la leggibilità e la produttività poiché è più semplice seguire il flusso di più funzioni attraverso questi tubi che andare indietro quando sono nidificate più funzioni.
I vantaggi che hai citato sono dimostrati con esempi di codice [qui] (http://r4ds.had.co.nz/pipes.html). –
Leggere [questo] (http://rpackages.ianhowson.com/cran/magrittr/man/pipe.html). È un operatore di piping nel pacchetto magrittr –
o guarda '? '%>%'' – jbaums
Grazie David! jbaums, sfortunatamente non ci sono documenti su questo. ? '%>%' retuns "Nessuna documentazione per '%>%' in pacchetti e librerie specificate" – alfakini