2017-01-26 15 views
0

summarize_all()を関数内に使用して、データフレームのすべての列に汎用関数を適用しようとしています。それは次のようになります。dplyr summarise_allで汎用関数を使用する

my_func <- function(df, FUN = sum, ...) { 

    < ...more stuff here ....> 

    # aggregate on desired level across all columns 
    df %>% group_by(level) %>% summarise_all(funs(FUN(., ...))) 
} 

問題がmy_funcはいつも私が好きそれを呼び出す場合でも、デフォルト合計機能を使用していること、しかし、次のとおりです。

追加のparamsで
my_func(my.data.frame, FUN="mean") # or my_func(my.data.frame, FUN=mean) 

そして渡します...引数の場合も機能しません。

私は間違っていますか?

答えて

2

funsの代わりにfuns_を使用することもできます。

機能は、argsを使用するには

my_func <- function(df, FUN = "sum", ...) { 
    df %>% 
     group_by(level) %>% 
     summarise_all(funs_(FUN, args = ...)) 
} 

ようになり、...引数はリストに置かれる必要があるだろう。

my_func(datasetname, FUN="mean", list(na.rm = TRUE)) 
+0

ありがとうございます! – CodingButStillAlive

関連する問題