【发布时间】:2021-07-12 17:01:36
【问题描述】:
This question 解决了如何在组中分配行的等级。我想将子组的排名分配给该子组中的一行。我真正想说的是,我需要第二个group_by 变量的缩写,它保证是唯一的,这是我能想到的最好的方法。希望下面的期望输出能够清楚地说明这一点。
输入数据框:
my_df <- tibble(
var1 = c(rep("A", 8), rep("B", 12)),
var2 = c(rep("long_string_x", 4),
rep("long_string_y", 4),
rep("long_string_x", 4),
rep("long_string_y", 4),
rep("long_string_z", 4))
)
期望的输出:
# A tibble: 20 x 3
var1 var2 group_rank
<chr> <chr> <dbl>
1 A long_string_x 1
2 A long_string_x 1
3 A long_string_x 1
4 A long_string_x 1
5 A long_string_y 2
6 A long_string_y 2
7 A long_string_y 2
8 A long_string_y 2
9 B long_string_x 1
10 B long_string_x 1
11 B long_string_x 1
12 B long_string_x 1
13 B long_string_y 2
14 B long_string_y 2
15 B long_string_y 2
16 B long_string_y 2
17 B long_string_z 3
18 B long_string_z 3
19 B long_string_z 3
20 B long_string_z 3
我如何分配group_rank 如上所述,理想情况下(但不一定)使用 tidyverse 方法?
【问题讨论】:
-
您好!只是为了澄清你想要什么:让 G = {
var1,var2} 成为所有分组变量的集合,让 S = {var2}是定义您的子组的一组变量;最后令 T = G \ S = {var1} 为 S 中的relative complement i>G。是否要在 T 定义的每个组内为 S 定义的每个子组编制索引?也就是说:您是否要按 T 中的变量进行分组,然后在每个组的上下文中,进一步按 S 对数据进行分组并对这些数据进行“排名”子组?