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


R dtplyr summarise.dtplyr_step 將每組匯總為一行

這是 dplyr summarise() 泛型的方法。它被轉換為 [.data.tablej 參數。

用法

# S3 method for dtplyr_step
summarise(.data, ..., .by = NULL, .groups = NULL)

參數

.data

一個lazy_dt()

...

< data-masking > Name-value 匯總函數對。該名稱將是結果中變量的名稱。

該值可以是:

  • 長度為 1 的向量,例如min(x)n()sum(is.na(y))

  • DataFrame ,用於從單個表達式添加多個列。

[Deprecated]從 1.1.0 開始,返回大小為 0 或 >1 的值已被棄用。請用reframe()為此。

.by

[Experimental]

< tidy-select > (可選)僅針對此操作選擇要分組的列,作為 group_by() 的替代方案。有關詳細信息和示例,請參閱?dplyr_by

.groups

結果的分組結構。

  • "drop_last":刪除最後一級分組。這是 1.0.0 版本之前唯一受支持的選項。

  • "drop":所有級別的分組均被刪除。

  • "keep":與.data相同的分組結構。

  • "rowwise":每一行都是它自己的組。

當未指定.groups時,根據結果的行數選擇:

  • 如果所有結果都有 1 行,您將得到"drop_last"。

  • 如果行數變化,您將得到 "keep" (請注意,不推薦返回可變行數,而改為 reframe() ,這也會無條件地刪除所有級別的分組)。

此外,一條消息會通知您該選擇,除非結果未分組,否則選項 "dplyr.summarise.inform" 設置為 FALSE ,或者當從包中的函數調用 summarise() 時。

例子

library(dplyr, warn.conflicts = FALSE)

dt <- lazy_dt(mtcars)

dt %>%
  group_by(cyl) %>%
  summarise(vs = mean(vs))
#> Source: local data table [3 x 2]
#> Call:   `_DT38`[, .(vs = mean(vs)), keyby = .(cyl)]
#> 
#>     cyl    vs
#>   <dbl> <dbl>
#> 1     4 0.909
#> 2     6 0.571
#> 3     8 0    
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

dt %>%
  group_by(cyl) %>%
  summarise(across(disp:wt, mean))
#> Source: local data table [3 x 5]
#> Call:   `_DT38`[, .(disp = mean(disp), hp = mean(hp), drat = mean(drat), 
#>     wt = mean(wt)), keyby = .(cyl)]
#> 
#>     cyl  disp    hp  drat    wt
#>   <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     4  105.  82.6  4.07  2.29
#> 2     6  183. 122.   3.59  3.12
#> 3     8  353. 209.   3.23  4.00
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Summarise each group to one row。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。