2015-06-30 2 views
1

Я пытаюсь уменьшить вложенные круглые скобки, используя трубы пакета magrittr. Поэтому я пытаюсь реализовать функцию summarize() пакета Hmisc.Как использовать оператор трубы пакета «magrittr» из R для суммирования() funtion пакета «Hmisc» в R?

data(iris) 
summarize(iris$Sepal.Length,iris$Species,mean) 

Как использовать трубы (%>%) из magrittr пакета в R?

+1

Есть ли причина использовать 'Hmisc :: summaryize' over' dplyr :: summaryize'? 'iris%>% group_by (Виды)%>% dplyr :: summary (среднее (Sepal.Length))' – ExperimenteR

+0

Нет конкретной причины. Я пробовал некоторые пакеты в R. Я делал простые команды по трубам, но не смог обобщить. –

ответ

3

Привет вы можете использовать with как это:

library("Hmisc") 
library("magrittr") 
data(iris) 
iris %>% with(summarize(X = Sepal.Length, by = Species, FUN = mean)) 

EDIT: Даже лучше вы можете использовать %$% оператора и пропустить with шаг:

iris %$% summarize(X = Sepal.Length, by = Species, FUN = mean) 

##  Species Sepal.Length 
##1  setosa  5.006 
##2 versicolor  5.936 
##3 virginica  6.588 
+1

Спасибо. Можем ли мы сломать функцию самостоятельно, используя трубы? –

3

Вы можете использовать dplyr пакет.

> library("dplyr") 
> iris %>% group_by(Species) %>% summarize(length = mean(Sepal.Length)) 
Смежные вопросы