dplyr内のsummarize関数を使用して、接続されたデータベースからテーブルとフィールド名を渡す2つの引数関数を使用して要約統計量を計算しようとしています。残念ながら、要約関数を別の関数でラップすると、結果は正しくありません。エンドテーブルは、各行を反復しないデータフレームです。私は、下記の入力/出力を紹介します:dplyr要約関数への引数の受け渡し
要約統計機能 ライブラリ(dplyr)
data<-iris
data<- group_by(.data = data,Species)
SummaryStatistics <- function(table, field){
table %>%
summarise(count = n(),
min = min(table[[field]], na.rm = T),
mean = mean(table[[field]], na.rm = T, trim=0.05),
median = median(table[[field]], na.rm = T))
}
SummaryStatistics(data, "Sepal.Length")
出力表をから間違って、それだけで同じ計算
を繰り返しています Species count min mean median
1 setosa 50 4.3 5.820588 5.8
2 versicolor 50 4.3 5.820588 5.8
3 virginica 50 4.3 5.820588 5.8
正しい表/希望の結果 - - これはテーブルがどのように見えるかです。ラッパー関数の要約関数のoutsizeを実行すると、これが生成されます。
Species count min mean median
1 setosa 50 4.3 5.002174 5.0
2 versicolor 50 4.9 5.934783 5.9
3 virginica 50 4.9 6.593478 6.5
これはわかりやすいと思いますが、要約統計がラッパー関数の外部で完璧に機能する理由を把握することはできませんが、引数を渡すとすぐに各行について同じことが計算されます。どんな助けでも大歓迎です。
おかげで、ケヴ
ラッパー機能の使い方を知らずに診断が難しい。しかし、推測すると、ラッパー関数の内部では、 'summarize'は計算に使用されているグループ化要因を知らないかもしれません。したがって、すべての行について同じ要約が返されます。 – jdobres
@jdobresラッパー関数を追加します。申し訳ありません。 – AlphaKevy
標準評価を使用する必要があります。より良いアイデアのために 'dplyr'のバイナリを読んでください。 –