我有表示從PO創建過程的反饋一些雜亂數據數據表爭論
PO <- c(1, 1, 2, 2, 3, 4, 5, 6)
Rating <- c(3, 0, 0, 1, 3, 4, 5, 4)
dt <- data.table(PO, Rating)
> dt
PO Rating
1: 1 3
2: 1 0
3: 2 0
4: 2 1
5: 3 3
6: 4 4
7: 5 5
8: 6 4
PO#1具有3兩個評級和0,和PO#2具有的0和1的評價在所有這種情況下,我想換行到最大爲該PO
PO Rating
1: 1 3
2: 1 3 <- changed from 0
3: 2 1 <- changed from 0
4: 2 1
5: 3 3
6: 4 4
7: 5 5
8: 6 4
第一步是檢測有這個問題的採購訂單。我對此有以下R代碼:
t <- dt[, .(U=length(unique(Rating))), by=.(PO)]
> t
PO U
1: 1 2
2: 2 2
3: 3 1
4: 4 1
5: 5 1
6: 6 1
這表明PO#1和#2有兩個唯一的評級。現在,我的任務是找到這些唯一評分的最大值,並將它們分配回數據表dt。
如何在R中執行此操作?
這樣嗎? 'dt [,Rating:= max(Rating,na.rm = TRUE),by = PO]' – din
是的,它運作良好。請給出答案,我會標記它。非常感謝 – user3701522
請注意:'data.table'對'length(unique ...':'uniqueN')有自己的(優化的)函數。 – Jaap