This question描述了我的問題的設置非常好。按列分組數據幀,在組內添加索引
然而,取代第二個值,我有一個因子叫做algorithm
。我的數據幀如下所示(請注意,即使在他們的小組值的多重可能性):
algorithm <- c("global", "distributed", "distributed", "none", "global", "global", "distributed", "none", "none")
v <- c(5, 2, 6, 7, 3, 1, 10, 2, 2)
df <- data.frame(algorithm, v)
df
algorithm v
1 global 5
2 distributed 2
3 distributed 6
4 none 7
5 global 3
6 global 1
7 distributed 10
8 none 2
9 none 2
我想通過v
的數據幀進行排序,但得到的每個條目排序位置相對於它的組(算法)。這個位置應該被添加到原始數據框(所以我不需要重新排列它),因爲我想繪製計算出的位置爲x,值爲y,使用ggplot(按算法分組,例如,每個算法是一組點)。
所以結果應該是這樣的:
algorithm v groupIndex
1 global 5 3
2 distributed 2 1
3 distributed 6 2
4 none 7 3
5 global 3 2
6 global 1 1
7 distributed 10 3
8 none 2 1
9 none 2 2
到目前爲止,我知道我可以通過值或其他方式輪,然後再命令由算法的數據。我想在第二步中,我將不得不計算每個組內的索引?有沒有簡單的方法來做到這一點?
df[order(df$algorithm, df$v), ]
algorithm v
2 distributed 2
3 distributed 6
7 distributed 10
6 global 1
5 global 3
1 global 5
8 none 2
9 none 2
4 none 7
編輯:它不能保證,有每個組條目相同數量的!