系列函数(n(), cur_group(), cur_group_id(), cur_group_rows(), cur_column())是dplyr包中用于在特定上下文(如summarise()mutate()等)中获取关于当前组或变量的信息的函数。下面结合例子逐一解释它们的用途:

1.n(): 返回当前组的大小,即当前组内的观测数量。

这个例子中,summarise(n = n())返回了每个组的观测数量。

 

2.cur_group(): 返回当前组的键,是一个tibble,每个组变量对应一列。

这个例子中,summarise(data = list(cur_group()))返回了当前组的键,以列表形式存储。

3.cur_group_id(): 返回当前组的唯一数字标识符。

这个例子中,mutate(id = cur_group_id())为每个观测添加了一个表示当前组的唯一数字标识符。

4.cur_group_rows(): 返回当前组的行索引。

这个例子中,reframe(row = cur_group_rows())返回了当前组的行索引。

补充:reframe() 函数

reframe() 函数用于重新定义数据框的结构,包括列名、列的顺序等。它允许你指定新的列名和列的顺序,以便重新构建数据框的结构。

上述例子中,reframe(X = A, Y = B, Z = C) 将重新构建数据框,将列 A 重新命名为 X,列 B 重新命名为 Y,列 C 重新命名为 Z。

reframe() 主要用于重新定义数据框的结构,包括列名和顺序。

5.cur_column(): 在across()中使用,返回当前列的名称。

这个例子中,across()函数中使用了cur_column()来获取当前列的名称,然后对每列应用了相应的操作。

补充:across() 函数

across() 函数主要用于在数据框中同时对多个列进行相同的操作。它适用于 mutate()summarise() 和其他一些函数,允许你指定多个列并对它们应用相同的函数或操作

上述例子中,across(c(A, B, C), ~ . * 2) 将对 A、B 和 C 列都应用了乘以2的操作。

across() 主要用于对多个列进行相同的操作