这显然是一个简单的问题,但我无法弄清楚要使用的功能。以下是样本数据:
gg <- data.frame(ID = c(15,15,15,16,16,16, 16,17,17,17),
ADO = c(rep("T1", 4), rep("T2", 2), rep("T3", 4)))
“ID”是特定“ADO”的标签或类别。它应该是每个ADO独有的。但在这种情况下,它不是:
> table(gg$ID, gg$ADO)
T1 T2 T3
15 3 0 0
16 1 2 1
17 0 0 3
我想将最常用的ID分配给特定的ADO。所以,我想要的输出是:
ID ADO
1 15 T1
2 15 T1
3 15 T1
4 16 T2
5 16 T2
6 16 T2
7 16 T2
8 17 T3
9 17 T3
10 17 T3
请指导我可以使用哪些功能来解决此问题?
答案 0 :(得分:0)
这显示找到ADO
的第一种模式的单向:
do.call("rbind", by(gg, gg$ID, function(x) { tbl <- table(x$ADO); x$ADO <- names(sort(tbl, decreasing = TRUE)[1]); x}))
# ID ADO
# 15.1 15 T1
# 15.2 15 T1
# 15.3 15 T1
# 16.4 16 T2
# 16.5 16 T2
# 16.6 16 T2
# 16.7 16 T2
# 17.8 17 T3
# 17.9 17 T3
# 17.10 17 T3