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中的键设置特性,这为组操作提供了高性能,特别是当您必须经常对特定的组进行操作时。
# aggregation after grouping using group_exe_dt
as.data.table(iris) -> a
a %>%
group_by_dt(Species) %>%
group_exe_dt(head(3))
a %>%
group_by_dt(Species) %>%
group_exe_dt(
head(3) %>%
summarise_dt(sum = sum(Sepal.Length))
)
mtcars %>%
group_by_dt("cyl|am") %>%
group_exe_dt(
summarise_dt(mpg_sum = sum(mpg))
)
# equals to
mtcars %>%
group_by_dt(cols = c("cyl","am")) %>%
group_exe_dt(
summarise_dt(mpg_sum = sum(mpg))
)