Interpretação de erros em r: 'max' não significativo para fatores
Em um ponto ou outro, você pode encontrar o seguinte erro no R:
'max' not meaningful for factors
Isso simplesmente indica que você está tentando obter o “máximo” de uma variável que pertence à classe factor .
Por exemplo, este erro é gerado se tentarmos obter o máximo do seguinte vetor:
#create a vector of class vector factor_vector <- as.factor(c(1, 7, 12, 14, 15)) #attempt to find max value in the vector max(factor_vector) #Error in Summary.factor(1:5, na.rm = FALSE): # 'max' not meaningful for factors
Por definição, os valores de um vetor de fatores são de classe nominal, o que significa que não existe uma ordem significativa dos valores. Portanto, não há valor “máximo” a ser encontrado.
Uma solução simples para encontrar o máximo de um vetor de fator é simplesmente convertê-lo em um vetor de caracteres e depois em um vetor numérico:
#convert factor vector to numeric vector and find the max value
new_vector <- as.numeric(as.character(factor_vector))
max(new_vector)
#[1] 15
Se o seu vetor de fatores contém simplesmente os nomes dos fatores, então não é possível encontrar o valor máximo, mesmo depois de converter o vetor de fatores em um vetor numérico, porque não faz sentido encontrar o “máximo” de uma lista de fatores. nomes.
#create factor vector with names of factors factor_vector <- as.factor(c("first", "second", "third")) #attempt to convert factor vector into numeric vector and find max value new_vector <- as.numeric(as.character(factor_vector)) max(new_vector) #Warning message: #NAs introduced by coercion #[1] NA
Deve-se notar que R pode encontrar os vetores de número máximo, vetores de data e vetores de caracteres sem encontrar problemas:
numeric_vector <- c(1, 2, 12, 14) max(numeric_vector) #[1] 14 character_vector <- c("a", "b", "f") max(character_vector) #[1] “f” date_vector <- as.Date(c("2019-01-01", "2019-03-05", "2019-03-04")) max(date_vector) #[1] "2019-03-05"
Portanto, se você estiver tentando encontrar o valor máximo em um vetor, certifique-se de que seu vetor não seja do tipo factor .