這些函數返回有關 "current" 組或 "current" 變量的信息,因此僅在特定上下文中工作,例如 summarise()
和 mutate()
。
-
n()
給出當前組大小。 -
cur_group()
給出組鍵,每個分組變量具有一行和一列的小標題。 -
cur_group_id()
給出當前組的唯一數字標識符。 -
cur_group_rows()
給出當前組的行索引。 -
cur_column()
給出當前列的名稱(僅在across()
中)。
有關返回所有組值的等效函數,請參閱group_data()
。
有關在 summarise()
或 mutate()
內使用 tidyselect 語法選擇列子集的方法,請參閱 pick()
。
data.table
如果您熟悉 data.table:
-
cur_group_id()
<->.GRP
-
cur_group()
<->.BY
-
cur_group_rows()
<->.I
請參閱 pick()
了解與 .SD
等效的內容。
例子
df <- tibble(
g = sample(rep(letters[1:3], 1:3)),
x = runif(6),
y = runif(6)
)
gf <- df %>% group_by(g)
gf %>% summarise(n = n())
#> # A tibble: 3 × 2
#> g n
#> <chr> <int>
#> 1 a 1
#> 2 b 2
#> 3 c 3
gf %>% mutate(id = cur_group_id())
#> # A tibble: 6 × 4
#> # Groups: g [3]
#> g x y id
#> <chr> <dbl> <dbl> <int>
#> 1 b 0.549 0.776 2
#> 2 c 0.486 0.584 3
#> 3 b 0.692 0.153 2
#> 4 c 0.524 0.604 3
#> 5 a 0.474 0.174 1
#> 6 c 0.828 0.118 3
gf %>% reframe(row = cur_group_rows())
#> # A tibble: 6 × 2
#> g row
#> <chr> <int>
#> 1 a 5
#> 2 b 1
#> 3 b 3
#> 4 c 2
#> 5 c 4
#> 6 c 6
gf %>% summarise(data = list(cur_group()))
#> # A tibble: 3 × 2
#> g data
#> <chr> <list>
#> 1 a <tibble [1 × 1]>
#> 2 b <tibble [1 × 1]>
#> 3 c <tibble [1 × 1]>
gf %>% mutate(across(everything(), ~ paste(cur_column(), round(.x, 2))))
#> # A tibble: 6 × 3
#> # Groups: g [3]
#> g x y
#> <chr> <chr> <chr>
#> 1 b x 0.55 y 0.78
#> 2 c x 0.49 y 0.58
#> 3 b x 0.69 y 0.15
#> 4 c x 0.52 y 0.6
#> 5 a x 0.47 y 0.17
#> 6 c x 0.83 y 0.12
相關用法
- R dplyr consecutive_id 為連續組合生成唯一標識符
- R dplyr copy_to 將本地數據幀複製到遠程src
- R dplyr coalesce 找到第一個非缺失元素
- R dplyr compute 強製計算數據庫查詢
- R dplyr count 計算每組中的觀察結果
- R dplyr cumall 任何、全部和平均值的累積版本
- R dplyr case_match 通用向量化 switch()
- R dplyr c_across 合並多列的值
- R dplyr cross_join 交叉連接
- R dplyr case_when 通用向量化 if-else
- R dplyr group_trim 修剪分組結構
- R dplyr slice 使用行的位置對行進行子集化
- R dplyr sample_n 從表中采樣 n 行
- R dplyr row_number 整數排名函數
- R dplyr band_members 樂隊成員
- R dplyr mutate-joins 變異連接
- R dplyr nth 從向量中提取第一個、最後一個或第 n 個值
- R dplyr group_split 按組分割 DataFrame
- R dplyr mutate 創建、修改和刪除列
- R dplyr order_by 用於排序窗口函數輸出的輔助函數
- R dplyr percent_rank 比例排名函數
- R dplyr recode 重新編碼值
- R dplyr starwars 星球大戰人物
- R dplyr desc 降序
- R dplyr between 檢測值落在指定範圍內的位置
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Information about the "current" group or variable。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。