2014-07-18 9 views
1

Я хотел бы сравнить стандартное отклонение для переменной со стандартными отклонениями переменной, однажды сгруппированной по коэффициенту.Получите доступ к 'parent' data.frame после использования group_by in dplyr

Это общая сд()

require(dplyr) 

iris %.% summarise(
    Overall.SD = sd(Sepal.Length) 
) 

Однако, я не могу получить доступ к нему, как только я использовал group_by

iris %.% 
    group_by(Species) %.% 
    summarise(
    Species.SD = sd(Sepal.Length), 
    Overall.SD = sd(iris$Sepal.Length), 
    Species.SD < Overall.SD 
) 

Есть ли способ, чтобы сделать dplyr оглянуться на общее набор данных?

ответ

2

Я бы вычислил Overall.SD перед группировкой данных с помощью mutate, так что остальные данные сохраняются как есть.

iris %>% 
    mutate(Overall.SD = sd(Sepal.Length)) %>% # you can use mutate instead of summarise here 
    group_by(Species) %>% 
    summarise(Species.SD = sd(Sepal.Length), 
       Overall.SD = Overall.SD[1], # You could also remove this line if you just want the comparison and don't need to display the actual Overall.SD 
       Species.SD < Overall.SD) 
+0

Это хороший способ сделать это. Я не думал взять первый случай с 'Overall.SD [1]' и назначить его таким образом. спасибо –