在R wrt其他列中计算模式

时间:2016-02-25 09:39:02

标签: r data-analysis

此问题与以下问题不重复: 是否有用于查找模式的内置功能? Is there a built-in function for finding the mode? 上面提到的所有答案链接都可以找到单个列或向量的模式。而我想找到模式wrt到其他列

我有这样的数据: -

Col1 Col2
C    High
B    Small
C    Medium
B    High
D    Medium
B    Medium
B    Small
B    Medium
B    Small
B    High
B    Small
C    Medium
B    Medium
D    High
B    Small
B    High
D    High

我想找到模式,结果应如下所示: -

col1  Mode 
B     Small
C     Medium
D     High

任何帮助?

由于

2 个答案:

答案 0 :(得分:3)

library(data.table)
df[,.(Mode = names(which.max(table(Col2)))), by = Col1]

   Col1   Mode
1:    C Medium
2:    B  Small
3:    D   High

非常相似的解决方案,只是留在这里供参考。

答案 1 :(得分:2)

使用data.table库:

library(data.table)

dt <- as.data.table(df)
dt[, .N, by = list(Col1, Col2)][, .SD[which.max(N)], by = Col1]