这些函数返回有关 "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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。