如何根据最常用的标签更改行的标签?

时间:2016-11-25 18:14:23

标签: r

这显然是一个简单的问题,但我无法弄清楚要使用的功能。以下是样本数据:

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  

请指导我可以使用哪些功能来解决此问题?

1 个答案:

答案 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