當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。