2017-07-10 20 views
0

dplyrを使っていくつかの関数でデータの単一の列を変更する方法を解明しようとしています。私はすべての列を行うことができます:dplyr :: mutate複数の関数を1つの列に入れよう

library(dplyr) 

iris %>% 
    group_by(Species) %>% 
    mutate_all(funs(min, max)) 

しかし、私はどの列を選択するかわかりません。しかし、これは本当にありません

summary_func = function(x){ 
    tibble(max_out = max(x), 
     min_out = min(x) 
) 
} 


iris %>% 
    group_by(Species) %>% 
    do(summary_func(.$Sepal.Length)) 

iris %>% 
    group_by(Species) %>% 
    mutate(Sepal.Length, funs(min, max)) 

を、私は、ソートのこのようなdo()とカスタム関数を使用してこのタスクを実行できます。これは明らかに実行されませんが、私はこのようなものを想像することができます私はどちらかをしたいと思っています。なぜなら、それは存在するtibble a la mutateに追加されていないからです。

アイデア?

答えて

4

使用mutate_at

iris %>% 
    group_by(Species) %>% 
    mutate_at("Sepal.Length", funs(min, max)) 

それは低速運行(分なので、あなたはまた、 `mutate_at(VARS(Sepal.Length)を使用することができ

+3

を引用符を見characterかかります、max)) 'を使用します。 – MrFlick

-1

使用mutate

iris %>% 
    group_by(Species) %>% 
    mutate(min = min(Sepal.Length), 
     max = max(Sepal.Length)) 
関連する問題