通过多数投票将因素合并为R中的一个因素

通过多数投票将因素合并为R中的一个因素,r,R,我有三个因子向量,它们的级别数相同,如下所示: eins <- c("no", "yes", "no") zwei <- c("no", "no", "no") drei <- c("yes", "yes", "no") 我知道如何构建一个foor循环,然后使用if语句来创建一个新的向量,但我想知道在R中是否有更快/更好的方法 谢谢你的帮助 类似于以下内容: a <- apply(cbind(eins, zwei, drei), 1, table) sapply(a,

我有三个因子向量,它们的级别数相同,如下所示:

eins <- c("no", "yes", "no")
zwei <- c("no", "no", "no")
drei <- c("yes", "yes", "no")
我知道如何构建一个foor循环,然后使用if语句来创建一个新的向量,但我想知道在R中是否有更快/更好的方法


谢谢你的帮助

类似于以下内容:

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

如果我运行它,R会创建一个列表,结果是:12@Lennie我刚刚在一个干净的RStudio会话中重新运行了代码,从创建EIN、zwei、drei开始,它输出我答案中的内容。你能发布printa的值吗?我删除了.RData和.rhistore。现在很有魅力,完美,谢谢!不知道是谁投了反对票。如果不在每一行上进行循环,这远远不是显而易见的,因为在更大的数据上,循环速度会非常慢。
a <- apply(cbind(eins, zwei, drei), 1, table)
sapply(a, function(x) names(x)[which.max(x)])
#[1] "no"  "yes" "no"