2017-02-24 1 views
0

Ich würde gerne wissen, ob es einen Weg gibt, mehrere Ausgänge von einem singulären Eingang mit dem magrittr Paket in R in einer solchen Art und Weise zu erreichen, dass Sie den Ausgang dieses erreichen könnte:Gibt es eine Möglichkeit, den magrittr-Pipe-Operator%>% zu verwenden, um mehrere Ausgaben zu erhalten?

rnorm(30) %>% 
mean 

rnorm(30) %>% 
median 

, ohne zu nennen rnorm(30) zweimal.

+1

Dies funktioniert: 'rnorm (30)%>% Liste (Mittelwert(), Median()..)' – Jean

Antwort

1

setzen Sie sie einfach in einen Vektor zusammen:

rnorm(30) %>% { c(mean = mean(.), median = median(.)) } 
#  mean  median 
# -0.2477345 -0.1126395 

Die geschweiften Klammern der Schlüssel hier sind. Ohne sie erhalten Sie den Vektor rnorm(30) mit dem Mittelwert und Median Werte bis zum Ende verkettet.

Eine andere Möglichkeit ist es, eine eigene Funktion zu schreiben.

f <- function(x) c(mean = mean(x), median = median(x)) 
rnorm(30) %>% f 
#  mean  median 
# -0.12908354 -0.06667819 
+1

Danke das funktioniert gut, werde ich Liste verwenden, anstatt c wie ich brauche zu kombinieren mehrere Datentypen, aber das Konzept hat viel geholfen (und die Erwähnung der {} Klammern. – Jamesm131

Verwandte Themen