通过多数表决将因子合并为R中的一

时间:2018-07-23 20:40:51

标签: r

我有三个具有相同水平数的因子向量:

eins <- c("no", "yes", "no")
zwei <- c("no", "no", "no")
drei <- c("yes", "yes", "no")

现在,我需要根据多数因素水平将它们合并。因此,在此示例中:

combined
[1] "no" "yes"   "no"

我知道如何建立一个foor循环,然后使用if语句创建一个新的向量,但是我想知道R中是否有更快/更好的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

类似以下内容:

a <- apply(cbind(eins, zwei, drei), 1, table)
sapply(a, function(x) names(x)[which.max(x)])
#[1] "no"  "yes" "no"