Мы выпустили пакет quickpsy несколько лет назад ( бумага в журнальной газете R ).Пакет использовал R базовых функций, но также широко использовал функции того, что тогда называлось Hadleyverse.Сейчас мы разрабатываем новую версию пакета, который в основном использует функции из tidyverse и который включает новый нестандартный подход к оценке , и обнаружил, что пакет намного медленнее (большечем в четыре раза медленнее).Например, мы обнаружили, что purrr :: map намного медленнее, чем dplyr :: do (что устарело):
library(tidyverse)
system.time(
mtcars %>%
group_by(cyl) %>%
do(head(., 2))
)
system.time(
mtcars %>%
group_by(cyl) %>%
nest() %>%
mutate(temp = map(data, ~head(., 2))) %>%
unnest(temp)
)
Мы также обнаружили, что такие функции, как pull
, очень медленные.
Мы не уверены, предназначен ли тидиверс для этого типа программирования или мы не используем его должным образом.