从R表中的多个列中选择频繁值

vis*_*akh 4 r data.table

我有一个data.table res数据如下:

            V1 V2 V3 V4
  1:     Day_1  4  4  4
  2:     Day_2  1  1  2
  3:     Day_3  4  5  4
  4:     Day_4  3  4  4
  5:     Day_5  3  2  3
Run Code Online (Sandbox Code Playgroud)

我需要从列V2,V3和V4中选择最常用的值.也就是说,我需要选择结果如下:

Day_1 4
Day_2 1
Day_3 4
Day_4 4
Day_5 3
Run Code Online (Sandbox Code Playgroud)

我不期待任何关系,因为总会有奇数列.有可能操纵data.table这样做吗?或者我应该修改一些其他数据类型?

谢谢 - V

Dav*_*urg 5

我发布这个作为这个旧问题data.table版本,直到提供更好的东西

Mode <- function(x) {
  ux <- unique(x)  
  ux[which.max(tabulate(match(x, ux)))]
}

DT[, .(res = Mode(unlist(.SD))), by = V1]

#       V1 res
# 1: Day_1   4
# 2: Day_2   1
# 3: Day_3   4
# 4: Day_4   4
# 5: Day_5   3
Run Code Online (Sandbox Code Playgroud)