我有表示从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