library(tidyverse)
stats <- read_csv('stats.csv')
#
#
I am sure that I have the same behavior until I updated Rcpp.
sessionInfo()
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Use filterand invoke_mapto perform aggregation of groups
test <- function(impl, size) {
stats %>%
filter(message.size==size & implementation==impl) %>%
select(ts.in, ts.out) %>%
summarise(begin=min(ts.in),
end=max(ts.out),
process.time=end - begin,
message.rate=size * 10000/as.double(process.time)/1024/1024)
}
invoke_map_df(test, crossing(impl=c('Camel', 'Spark'), size=c(1024, 1024*5, 1024*10)) %>% transpose())
#
#
#
#
#
#
#
#
#
Using group_byandsummarise
stats %>%
group_by(implementation, message.size) %>%
summarise(total.size=sum(message.size),
begin=min(ts.in),
end=max(ts.out),
duration=end-begin,
message.rate=total.size/as.numeric(duration)/1024/1024) %>%
ungroup() %>%
select(begin, end, duration, message.rate)
#
#
#
#
#
#
#
#
#
For some reason it is process.timenot calculated correctly, but perhaps the add- message.ratein that depends on it is correct! Did I do something wrong here?
Use group_byanddo
stats %>%
group_by(implementation, message.size) %>%
do(tibble(total.size=sum(.$message.size),
begin=min(.$ts.in),
end=max(.$ts.out),
duration=end-begin,
message.rate=total.size/as.numeric(duration)/1024/1024)) %>%
ungroup() %>%
select(begin, end, duration, message.rate)
Is the behavior consistent with filterand invoke_map.
External links