This can now be simplified with dplyr's new transmute
function which drops any columns except for the grouping variable and cumputed variables (V1 in this case).
require(dplyr) # >= 0.3.0.2
iris %>%
group_by(Species) %>%
transmute(v1 = Sepal.Length / mean(Sepal.Length)) %>%
filter(v1 > 1.15)
#Source: local data frame [9 x 2]
#Groups: Species
#
# Species v1
#1 setosa 1.158610
#2 versicolor 1.179245
#3 versicolor 1.162399
#4 virginica 1.153613
#5 virginica 1.168792
#6 virginica 1.168792
#7 virginica 1.168792
#8 virginica 1.199150
#9 virginica 1.168792