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"

したがって、ベクトル内の最大値を見つけようとしている場合は、ベクトルの型が要因でないことを確認してください。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です