Інтерпретація помилок у r: 'max' незначний для факторів
У той чи інший момент ви можете зіткнутися з такою помилкою в R:
'max' not meaningful for factors
Це просто означає, що ви намагаєтеся взяти “max” змінної, яка належить фактору класу.
Наприклад, ця помилка генерується, якщо ми намагаємося взяти максимум із наступного вектора:
#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
За визначенням, значення факторного вектора належать до номінального класу, що означає відсутність значущого порядку значень. Тому немає «максимального» значення для пошуку.
Просте рішення для знаходження максимуму факторного вектора полягає в тому, щоб просто перетворити його на символьний вектор, а потім на числовий вектор:
#convert factor vector to numeric vector and find the max value
new_vector <- as.numeric(as.character(factor_vector))
max(new_vector)
#[1] 15
Якщо ваш фактор-вектор просто містить назви факторів, тоді неможливо знайти максимальне значення, навіть після перетворення фактор-вектора на числовий вектор, оскільки немає сенсу знаходити “максимум” списку факторів. імена.
#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
Слід зазначити, що R може знайти максимальну кількість векторів, векторів дат і векторів символів без проблем:
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"
Отже, якщо ви намагаєтеся знайти максимальне значення у векторі, просто переконайтеся, що ваш вектор не має типу factor .