当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dtplyr group_modify.dtplyr_step 对每个组应用一个函数


这些是 dplyr group_map()group_modify() 泛型的方法。它们都被翻译为 [.data.table

用法

# S3 method for dtplyr_step
group_modify(.data, .f, ..., keep = FALSE)

# S3 method for dtplyr_step
group_map(.data, .f, ..., keep = FALSE)

参数

.data

lazy_dt()

.f

二参数函数的名称。第一个参数传递.SD,data.table代表当前组;第二个参数传递 .BY ,这是一个给出分组变量当前值的列表。该函数应返回列表或 data.table。

...

传递给.f的附加参数

keep

不支持 lazy_dt

group_map().f 应用于每个组,并返回一个列表。 group_modify() 将每个组替换为 .f 的结果,返回修改后的 lazy_dt()

例子

library(dplyr)

dt <- lazy_dt(mtcars)

dt %>%
  group_by(cyl) %>%
  group_modify(head, n = 2L)
#> Source: local data table [6 x 11]
#> Groups: cyl
#> Call:   `_DT16`[, head(.SD, .BY, n = ~2L), by = .(cyl)]
#> 
#>     cyl   mpg  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     6  21    160    110  3.9   2.62  16.5     0     1     4     4
#> 2     6  21    160    110  3.9   2.88  17.0     0     1     4     4
#> 3     4  22.8  108     93  3.85  2.32  18.6     1     1     4     1
#> 4     4  24.4  147.    62  3.69  3.19  20       1     0     4     2
#> 5     8  18.7  360    175  3.15  3.44  17.0     0     0     3     2
#> 6     8  14.3  360    245  3.21  3.57  15.8     0     0     3     4
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

dt %>%
  group_by(cyl) %>%
  group_map(head, n = 2L)
#> [[1]]
#>    mpg disp  hp drat    wt  qsec vs am gear carb
#> 1:  21  160 110  3.9 2.620 16.46  0  1    4    4
#> 2:  21  160 110  3.9 2.875 17.02  0  1    4    4
#> 
#> [[2]]
#>     mpg  disp hp drat   wt  qsec vs am gear carb
#> 1: 22.8 108.0 93 3.85 2.32 18.61  1  1    4    1
#> 2: 24.4 146.7 62 3.69 3.19 20.00  1  0    4    2
#> 
#> [[3]]
#>     mpg disp  hp drat   wt  qsec vs am gear carb
#> 1: 18.7  360 175 3.15 3.44 17.02  0  0    3    2
#> 2: 14.3  360 245 3.21 3.57 15.84  0  0    3    4
#> 
源代码:R/step-modify.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Apply a function to each group。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。