我有一个这样的数据框:
df <- data.frame(
Dim1 = c("A","A","A","A","A","A","B","B"),
Dim2 = c(100,100,100,100,200,200,100,200),
Value = sample(1:10, 8)
)
Dim1 Dim2 Value
1 A 100 3
2 A 100 6
3 A 100 7
4 A 100 4
5 A 200 8
6 A 200 9
7 B 100 2
8 B 200 10
(Value 列只是为了说明每一行都是一个数据点;实际值并不重要。)最终,我想做的是根据 Dim1 和 Dim2 定义的子集中的索引绘制值。出于这个原因,我认为需要附加一个包含索引的新列,如下所示(在行之间添加空行以明确子集是什么):
Dim1 Dim2 Value Index
1 A 100 1 1
2 A 100 9 2
3 A 100 4 3
4 A 100 10 4
5 A 200 7 1
6 A 200 3 2
7 B 100 5 1
8 B 200 8 1
我如何在 R 中优雅地做到这一点?我来自 Python,我的默认方法是对 Dim1 和 Dim2 的组合进行 for 循环,跟踪每个中的行数并将迄今为止遇到的最大值分配给每一行。我一直在试图弄清楚,但我的矢量符很弱。