Pull to refresh

Comments 1

Для сравнения скорости исполнения операций в R стандартом давно стал пакет microbenchmark. Суть в том, что время исполнения никогда не бывает строго одинаковым для итераций одной и той же команды. Поэтому для корректного сравнения надо запускать команду много раз подряд (стандарное число итераций — 100) и потом сравнивать распределния потраченного времени. Чаще всего сравнивают медианы. Пример:


library(tidyverse)
library(microbenchmark)

microbenchmark(
        apply(mtcars, 2, mean),
        mtcars %>% summarise_each(funs(mean)),
        summarise_each(mtcars, funs(mean))
)

Unit: microseconds
                                  expr      min       lq      mean    median        uq      max neval
                apply(mtcars, 2, mean)  151.095  175.042  193.2387  184.7345  213.8135  322.714   100
 mtcars %>% summarise_each(funs(mean)) 1671.156 1724.323 1825.2407 1785.4745 1834.7935 3687.832   100
    summarise_each(mtcars, funs(mean)) 1578.504 1634.238 1742.8804 1678.9960 1731.0240 3583.777   100
Sign up to leave a comment.