我對data.table相當陌生,並且有一個基本問題。我試圖重新排序基於這兩列的以下數據表。如何根據帶有關係的多列在R中訂購data.table?
library(data.table)
DT <- data.table(letter=c('a','a','a','a','b','b','c','d','d','d','d'),
value =c(1,2,4,8,2,5,1,1,2,3,9))
letter value
1: a 1
2: a 2
3: a 4
4: a 8
5: b 2
6: b 5
7: c 1
8: d 1
9: d 2
10: d 3
11: d 9
我想基於最低值關聯的字母排序,他們應該是相等的下一個值(如果有的話)應該比較等。
這將產生以下結果:
letter value
1: c 1
2: d 1
3: d 2
4: d 3
5: d 9
6: a 1
7: a 2
8: a 4
9: a 8
10: b 2
11: b 5
我試圖DT[order(value), .SD, letter]
這確實排序上的價值,但沒有考慮後續值考慮在最低值相關聯關係的情況下。我覺得應該有一個簡單的方法來做到這一點,但我找不到答案。謝謝。
因此,您想首先對「價值」進行分類,然後再對字母進行分類? setorder(DT,value,-letter)怎麼樣? – dleal
不,我想要得到最低值的字母,然後是該字母的所有其他值。然後移動到下一個最小值的字母並獲得所有具有該字母的行。如果有關係,必須比較一個字母的後續值。對不起,如果不明確。 – sandrjekk