Interpretasi kesalahan di r: 'maks' tidak signifikan terhadap faktor


Pada satu titik atau lainnya, Anda mungkin mengalami kesalahan berikut di R:

 'max' not meaningful for factors

Ini hanya menyatakan bahwa Anda mencoba mengambil “maks” dari variabel yang termasuk dalam class factor .

Misalnya, kesalahan ini terjadi jika kita mencoba mengambil vektor berikut secara maksimal:

 #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

Menurut definisi, nilai vektor faktor adalah kelas nominal, yang berarti tidak ada urutan nilai yang berarti. Jadi tidak ada nilai “maks” yang bisa ditemukan.

Solusi sederhana untuk mencari nilai maksimum suatu vektor faktor adalah dengan mengubahnya menjadi vektor karakter dan kemudian menjadi vektor bilangan:

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

#[1] 15

Jika vektor faktor Anda hanya berisi nama-nama faktor, maka tidak mungkin menemukan nilai maksimum, bahkan setelah mengubah vektor faktor menjadi vektor numerik, karena tidak ada gunanya mencari “maks” dari daftar faktor. nama.

 #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

Perlu diperhatikan bahwa R dapat mencari vektor bilangan maksimum, vektor tanggal, dan vektor karakter tanpa menemui masalah:

 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"

Jadi jika Anda mencoba mencari nilai maksimum dalam sebuah vektor, pastikan saja vektor Anda bukan bertipe faktor .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *