2
提取最佳屬性我有一個data.table
:從data.table
> (a <- data.table(id=c(1,1,1,2,2,3),
attribute=c("a","b","c","a","b","c"),
importance=1:6,
key=c("id","importance")))
id attribute importance
1: 1 a 1
2: 1 b 2
3: 1 c 3
4: 2 a 4
5: 2 b 5
6: 3 c 6
我想:
--1--由第二個鍵來排序遞減秩序(即最重要的屬性應該優先)
- 2 -選擇頂部 2(或10)的屬性爲每個id
,即:
id attribute importance
3: 1 c 3
2: 1 b 2
5: 2 b 5
4: 2 a 4
6: 3 c 6
--3--樞軸以上:
id attribute.1 importance.1 attribute.2 importance.2
1 c 3 b 2
2 b 5 a 4
3 c 6 NA NA
看來,最後的操作可以與像進行:
a[,{
tmp <- .SD[.N:1];
list(a1 = tmp$attribute[1],
i1 = tmp$importance[1])
}, by=id]
這是正確的方法嗎?
我該如何做前兩個任務?