dplyr总结两次评估自定义函数?

时间:2017-02-26 16:15:59

标签: r dplyr

我正在使用dplyr group_bysummarise函数以及自定义聚合函数,并观察到一种奇怪的行为。看起来每个组的聚合函数评估两次。

这是一个最小的例子:

aggFun <- function(x) { print("Inside function"); print(rnorm(1)); sum(x)}
df <- data.frame(key = rep("a", 3), val = 1:3)
df %>% group_by(key) %>% summarise(sum = aggFun(val))

以下是输出:

[1] "Inside function"
[1] 0.3230769
[1] "Inside function"
[1] -0.3347653
# A tibble: 1 × 2
   key   sum
<fctr> <int>
1      a     6

由于只有一个组,该功能是否只应评估一次?我在大型应用程序中遇到同样的问题,并担心这可能对性能有害,或者我错过了什么?

通过升级到GitHub版本解决

0 个答案:

没有答案