這些是 dplyr 的 group_by()
和 ungroup()
泛型的方法。根據 arrange
參數的值,分組會轉換為 [.data.table
的 keyby
和 by
參數。
用法
# S3 method for dtplyr_step
group_by(.data, ..., .add = FALSE, arrange = TRUE)
# S3 method for dtplyr_step
ungroup(x, ...)
參數
- .data
- ...
-
在
group_by()
中,用於分組的變量或計算。計算始終在未分組的數據幀上完成。要對分組數據執行計算,您需要在group_by()
之前使用單獨的mutate()
步驟。nest_by()
中不允許進行計算。在ungroup()
中,要從分組中刪除的變量。 - .add, add
-
當
FALSE
時,默認情況下,group_by()
將覆蓋現有組。要添加到現有組,請使用.add = TRUE
。該參數以前稱為
add
,但這阻止了創建名為add
的新分組變量,並且與我們的命名約定衝突。 - arrange
-
如果是
TRUE
,會自動按組排列後續分組操作的輸出。如果是FALSE
,輸出順序將保持不變。在生成的 data.table 代碼中,它在使用keyby
(TRUE
) 和by
(FALSE
) 參數之間切換。 - x
例子
library(dplyr, warn.conflicts = FALSE)
dt <- lazy_dt(mtcars)
# group_by() is usually translated to `keyby` so that the groups
# are ordered in the output
dt %>%
group_by(cyl) %>%
summarise(mpg = mean(mpg))
#> Source: local data table [3 x 2]
#> Call: `_DT15`[, .(mpg = mean(mpg)), keyby = .(cyl)]
#>
#> cyl mpg
#> <dbl> <dbl>
#> 1 4 26.7
#> 2 6 19.7
#> 3 8 15.1
#>
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results
# use `arrange = FALSE` to instead use `by` so the original order
# or groups is preserved
dt %>%
group_by(cyl, arrange = FALSE) %>%
summarise(mpg = mean(mpg))
#> Source: local data table [3 x 2]
#> Call: `_DT15`[, .(mpg = mean(mpg)), by = .(cyl)]
#>
#> cyl mpg
#> <dbl> <dbl>
#> 1 6 19.7
#> 2 4 26.7
#> 3 8 15.1
#>
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results
相關用法
- R dtplyr group_modify.dtplyr_step 對每個組應用一個函數
- R dtplyr lazy_dt 創建一個“惰性”data.table 以與 dplyr 動詞一起使用
- R dtplyr transmute.dtplyr_step 創建新列,刪除舊列
- R dtplyr slice.dtplyr_step 使用行的位置對行進行子集化
- R dtplyr left_join.dtplyr_step 連接數據表
- R dtplyr fill.dtplyr_step 用上一個或下一個值填充缺失值
- R dtplyr filter.dtplyr_step 使用列值對行進行子集化
- R dtplyr mutate.dtplyr_step 創建和修改列
- R dtplyr distinct.dtplyr_step 子集不同/唯一行
- R dtplyr unite.dtplyr_step 通過將字符串粘貼在一起將多列合並為一列。
- R dtplyr nest.dtplyr_step 巢
- R dtplyr relocate.dtplyr_step 使用變量名稱重新定位變量
- R dtplyr head.dtplyr_step 對第一行或最後一行進行子集化
- R dtplyr expand.dtplyr_step 擴展 DataFrame 以包含所有可能的值組合。
- R dtplyr intersect.dtplyr_step 設置操作
- R dtplyr pivot_wider.dtplyr_step 將數據從長軸轉向寬軸
- R dtplyr summarise.dtplyr_step 將每組匯總為一行
- R dtplyr count.dtplyr_step 按組計數觀察值
- R dtplyr select.dtplyr_step 使用名稱對列進行子集化
- R dtplyr drop_na.dtplyr_step 刪除包含缺失值的行
- R dtplyr complete.dtplyr_step 完成缺少數據組合的 DataFrame
- R dtplyr collect.dtplyr_step 強製計算惰性 data.table
- R dtplyr arrange.dtplyr_step 按列值排列行
- R dtplyr separate.dtplyr_step 使用正則表達式或數字位置將字符列分成多列
- R dtplyr rename.dtplyr_step 使用名稱重命名列
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Group and ungroup。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。