これを行う方法があるかどうか疑問に思っています:
iris %.% group_by(Species) %.%
mutate(v1=Sepal.Length / mean(Sepal.Length)) %.%
filter(v1 > 1.15) %.% select(Species:v1)
select
ビットをスキップしながら。私は以下がうまくいくはずだと思った(しかし、多くの理由でうまくいかない):
iris %.% group_by(Species) %.%
select(Species, v1=Sepal.Length / mean(Sepal.Length)) %.%
filter(v1 > 1.15)
この例では、単独で実行できることを期待してmutate
に置き換えたことに注意してください。式が 1 つの値を返すことを期待select
しているため、これも機能しません。summarize
iris %.%
group_by(Species) %.%
summarise(Sepal.Length / mean(Sepal.Length)) %.%
filter(v1 > 1.15)
data.table
明らかに、大したことではありませんが、デフォルトの動作を複製する簡単な方法があるかどうか疑問に思っています。
data.table(iris)[, Sepal.Length / mean(Sepal.Length), by=Species][V1 > 1.15]
by
列と計算された値だけを生成します。
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