我有以下数据,End1、End2 处的值按顺序出现,我想要另一列来确定它在 End1 处出现的顺序。End2 处的值有可能永远不会到达 End1 处,但如果它出现在任何地方,都会对下一项的顺序产生影响。
ID End1 End2
1 A B
1 A B
1 B A
1 A B
1 C B
1 C D
1 D C
1 C D
1 D C
2 A B
2 A B
2 A C
2 A C
2 C A
2 C A
2 D C
2 C D
2 D C
我想要有以下输出:
ID End1 End2 Order
1 A B 1
1 A B 1
1 B A 2
1 A B 1
1 C B 3
1 C D 3
1 D C 4
1 C D 3
1 D C 4
2 A B 1
2 A B 1
2 A C 1
2 A C 1
2 C A 3
2 C A 3
2 D C 4
2 C D 3
2 D C 4
我尝试了不同的函数,但它们都在计算该值的出现次数。任何帮助表示赞赏。
更新:这里还有另外两个要求:
每个组的顺序都会重置。虽然 A 在 ID=1 时可能具有阶数 1,但对于任何其他 ID,它可能具有阶数 2。
一些建议的解决方案没有考虑到 End2 处的项目(对于 ID=2 中的 B)可能永远不会到达 End1。但它会影响其后的项目的顺序。
为了更清楚地说明 ID=3 在同一数据集中可能有以下数据:
ID End1 End2
2 D C
.....
3 B E
3 E B
3 E B
3 G B
3 C B
所需的输出是
ID End1 End2 Order
2 D C 4
.....
3 B E 1
3 E B 2
3 E B 2
3 G B 3
3 C B 4
凤凰求蛊
LEATH
江户川乱折腾
相关分类