R의 오류 해석: 'max'는 요인에 중요하지 않습니다.
어느 시점에서 R에서 다음과 같은 오류가 발생할 수 있습니다.
'max' not meaningful for factors
이는 단순히 클래스 요인 에 속하는 변수의 “최대”를 취하려고 한다는 것을 나타냅니다.
예를 들어, 다음 벡터의 최대값을 취하려고 하면 이 오류가 생성됩니다.
#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 가 아닌지 확인하세요.