cómo encontrar el valor de la primera columna por valores máximos en la segunda columna (en una matriz)

Omri

Tengo esta matriz que estoy tratando de encontrar el firstPlacevalor por el valor / valores máximos en la freqcolumna:

ingrese la descripción de la imagen aquí

este es el código que uso para obtener valores máximos:

mat1[which(mat1 == max(mat1[,2]), arr.ind = TRUE)]

producción:

ingrese la descripción de la imagen aquí

Pero lo que realmente necesito es una Vectorde las"CR","MS"

EDITAR:

este código que genera la matriz:

firstPlace <- c(1:100)
secondPlace <- c(1:100)
thirdPlace <- c(1:100)
for(i in thirdPlace){
  players <- c("CR","MS","LM")
  chances <- c(0.3,0.3,0.4)
  firstPlace[i] <- sample(players,size = 1,replace = TRUE ,prob = chances)
  players <- players[!(players %in% firstPlace[i])]
  secondPlace[i] <- sample(players,1,replace = TRUE)
  thirdPlace[i] <- players[!(players %in% secondPlace[i])]
  players <- c("CR","MS","LM")
}
mat1 <- as.data.frame(table(firstPlace)) %>% print()
programador improvisado

Hay una which.maxfunción que devuelve el índice del elemento max.

El código es el siguiente:

as.character(mat1$firstPlace[which.max(mat1$Freq)])

PS Esto devuelve solo los primeros máximos en el caso de dos puntos de datos con valor máximo. Si quieres todo, te sugiero que uses lo siguiente:

as.character(mat1$firstPlace[which(mat1$Freq == max(mat1$Freq,na.rm=T))])

Esto debería darle el resultado deseado.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

CalienteEtiquetas

Archivo