O mutate altera tbl por referência?

O que eu realmente gostodata.table é o:= idioma para alterar a tabela por referência, sem a necessidade de cópias caras. Pelo que entendi, este é um dos aspectos que tornadata.table tão ultra-rápido em comparação com outros métodos.

Agora, comecei a brincar com odplyr pacote que parece ter igualmente desempenho. Mas como os resultados ainda precisam ser atribuídos usando o<- operador, eu esperava uma drenagem de desempenho nesse nível. No entanto, parece não haver nenhum.

Como um exemplo:

library(dplyr)
library(Lahman)
library(microbenchmark)
library(ggplot2)

df <- Batting[ c("yearID", "teamID", "G_batting") ]

mb <- microbenchmark(
  dplyr = {
    tb <- tbl_df( df )
    tb <- tb %.%
      group_by( yearID, teamID ) %.%
      mutate( G_batting = max(G_batting) )
  },
  data.table = {
    dt <- as.data.table( df )
    dt[ , G_batting := max(G_batting), by = list( yearID, teamID ) ]
  },
  times = 500
)

qplot( data = mb, x = expr, y = time * 1E-6, geom = "boxplot", ylab="time [ms]", xlab = "approach" )

Eu só estou querendo saber como isso é possível? Ou há um erro conceitual na maneira como comparo? O meu entendimento de<- errado?

questionAnswers(2)

yourAnswerToTheQuestion