การตีความข้อผิดพลาดใน r: 'สูงสุด' ไม่มีนัยสำคัญสำหรับปัจจัยต่างๆ
ณ จุดใดจุดหนึ่ง คุณอาจพบข้อผิดพลาดต่อไปนี้ใน 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"
ดังนั้นหากคุณพยายามค้นหาค่าสูงสุดในเวกเตอร์ เพียงตรวจสอบให้แน่ใจว่าเวกเตอร์ของคุณไม่ใช่ ปัจจัย ประเภท