Skip to content

[R-es] Encontrar el más votado

5 messages · Manuel Mendoza, Carlos J. Gil Bellosta

#
Buenas tardes de sábado. LLevo más de una hora intentando una cosa que  
debe ser una chorrada; a ver si alguien puede ayudarme.

Tengo una matriz (data) de 1000 muestras (filas) y 6 categorías  
posibles. Hay 100 columnas, es decir, 100 votos para cada muestra, y  
necesito crear un vector con la categoría más votada de las 6.

  which.max(table(data[i,])) me da la más votada de la muestra i.  
Estoy intentando crear el vector con un for y de momento no me sale.  
¡ya! es muy fácil, pero no me sale, y estoy seguro de que hay una  
forma mucho más fácil.

Gracias,
Manuel
#
apply(data, 1,  function(x) which.max(table(x)))

El sáb., 14 abr. 2018 a las 19:54, Manuel Mendoza (<mmendoza en mncn.csic.es>)
escribió:

  
  
#
Gracias Carlos J., sale bien, pero me transforma las 6 categorías en  
números del 1 al 6
¿sabes cómo evitarlo?


Quoting "Carlos J. Gil Bellosta" <cgb en datanalytics.com>:

  
    
#
Probaría con

apply(data, 1,  function(x) names(table(x))[which.max(table(x))])

No sé si he contado los paréntesis bien.

El sáb., 14 abr. 2018 a las 20:33, Manuel Mendoza (<mmendoza en mncn.csic.es>)
escribió:

  
  
#
Funciona, gracias una vez más,
Manuel

Quoting "Carlos J. Gil Bellosta" <cgb en datanalytics.com>: