Tengo esta matriz que estoy tratando de encontrar el firstPlace
valor por el valor / valores máximos en la freq
columna:
este es el código que uso para obtener valores máximos:
mat1[which(mat1 == max(mat1[,2]), arr.ind = TRUE)]
producción:
Pero lo que realmente necesito es una Vector
de 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()
Hay una which.max
funció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
Déjame decir algunas palabras