Interpretacja błędów w r: „max” nieistotna dla czynników


W pewnym momencie możesz napotkać następujący błąd w R:

 'max' not meaningful for factors

Oznacza to po prostu, że próbujesz przyjąć „maksimum” zmiennej należącej do współczynnika klasy.

Na przykład ten błąd jest generowany, jeśli spróbujemy przyjąć maksimum z następującego wektora:

 #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

Z definicji wartości wektora czynnikowego należą do klasy nominalnej, co oznacza, że nie ma znaczącej kolejności wartości. Nie ma więc żadnej wartości „maksymalnej” do znalezienia.

Prostym rozwiązaniem znalezienia maksimum wektora czynnikowego jest po prostu przekształcenie go na wektor znakowy, a następnie na wektor liczbowy:

 #convert factor vector to numeric vector and find the max value
new_vector <- as.numeric(as.character(factor_vector))
max(new_vector)

#[1] 15

Jeśli wektor czynnikowy zawiera po prostu nazwy czynników, to nie jest możliwe znalezienie wartości maksymalnej, nawet po przekształceniu wektora czynnikowego na wektor liczbowy, ponieważ nie ma sensu znajdować „maksimum” listy czynników. nazwy.

 #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

Należy zauważyć, że R może znaleźć wektory liczb maksymalnych, wektory dat i wektory znaków bez napotykania problemów:

 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"

Jeśli więc próbujesz znaleźć maksymalną wartość w wektorze, po prostu upewnij się, że wektor nie jest typu współczynnik .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *