group_by_dt

    描述

    在指定的组内执行数据操作。与group_dt不同的是,实现被分为两个操作,即分组和实现。在data.table中使用setkey和setkeyv以在dplyr中执行类group_by功能。这不仅方便,而且计算效率高。

    Usage

    group_by_dt(.data, …, cols = NULL)

    group_exe_dt(.data, …)

    Arguments

    .data A data frame
    对group_by_dt进行分组的变量,即要排序的列。
    不要引用列名。group_exe_dt的data.frame上可以实现的任何数据操作参数。它可以接收select_dt接收的内容。
    cols 用于分组的列名的字符向量。

    detail

    group_by_dt和group_exe_dt是一对组合使用的函数。它利用了data_table中的键设置特性,这为组操作提供了高性能,特别是当您必须经常对特定的组进行操作时。

    1. # aggregation after grouping using group_exe_dt
    2. as.data.table(iris) -> a
    3. a %>%
    4. group_by_dt(Species) %>%
    5. group_exe_dt(head(3))
    6. a %>%
    7. group_by_dt(Species) %>%
    8. group_exe_dt(
    9. head(3) %>%
    10. summarise_dt(sum = sum(Sepal.Length))
    11. )
    12. mtcars %>%
    13. group_by_dt("cyl|am") %>%
    14. group_exe_dt(
    15. summarise_dt(mpg_sum = sum(mpg))
    16. )
    17. # equals to
    18. mtcars %>%
    19. group_by_dt(cols = c("cyl","am")) %>%
    20. group_exe_dt(
    21. summarise_dt(mpg_sum = sum(mpg))
    22. )