我有一个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
我发布这个作为这个旧问题的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)