การตีความข้อผิดพลาดใน 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"

ดังนั้นหากคุณพยายามค้นหาค่าสูงสุดในเวกเตอร์ เพียงตรวจสอบให้แน่ใจว่าเวกเตอร์ของคุณไม่ใช่ ปัจจัย ประเภท

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *