給定包含 2N 行且至少有 N 行唯一的資料,是否有一種優雅的重新排序方式,使每一行都與它上面的行不同?
這是一個簡單的例子
df <- data.table(
a = rep(2, 4),
b = c(2, 2, 1, 1)
)
> df
a b
1: 2 2
2: 2 2
3: 2 1
4: 2 1
第 2 行打破了規則,因為它與它上面的第 1 行相同。同樣,第 4 行打破了規則。
假設reorder_function是重新排序資料的函式,那么
> reorder_function(df)
a b
1: 2 2
2: 2 1
3: 2 2
4: 2 1
輸出可能性不是唯一的,只要輸出滿足規則,這對我的用例來說并不重要。
uj5u.com熱心網友回復:
用于rowid“在每個組內生成唯一的行 ID”,此處由“a”和“b”列定義。order行 ID 的資料。
df[order(rowid(a, b))]
a b
1: 2 2
2: 2 1
3: 2 2
4: 2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/535651.html
標籤:r排序数据表
