วิธีแก้ไขใน r: nas ที่ถูกบังคับโดยการบังคับ


ข้อความเตือนทั่วไปที่คุณอาจพบใน R คือ:

 Warning message:
NAs introduced by coercion 

ข้อความเตือนนี้เกิดขึ้นเมื่อคุณใช้ as.numeric() เพื่อแปลงเวกเตอร์ใน R เป็นเวกเตอร์ตัวเลข และบังเอิญมีค่าที่ไม่ใช่ตัวเลขในเวกเตอร์ดั้งเดิม

เพื่อให้ชัดเจน คุณไม่จำเป็นต้องดำเนินการใดๆ เพื่อ “แก้ไข” ข้อความเตือนนี้ R เพียงเตือนคุณว่าค่าบางค่าในเวกเตอร์ดั้งเดิมถูกแปลงเป็น NA เนื่องจากไม่สามารถแปลงเป็นค่าตัวเลขได้

อย่างไรก็ตาม บทช่วยสอนนี้จะแชร์ขั้นตอนที่คุณสามารถปฏิบัติตามได้ หากคุณไม่ต้องการเห็นข้อความเตือนนี้แสดงเลย

วิธีทำซ้ำข้อความเตือน

รหัสต่อไปนี้แปลงเวกเตอร์อักขระเป็นเวกเตอร์ตัวเลข:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R แปลงเวกเตอร์อักขระเป็นเวกเตอร์ตัวเลข แต่แสดงข้อความเตือน NAs ที่แนะนำโดยการบังคับ เนื่องจากค่าสองค่าของเวกเตอร์ดั้งเดิมไม่สามารถแปลงเป็นค่าตัวเลขได้

วิธีที่ # 1: ลบคำเตือน

วิธีหนึ่งในการจัดการกับข้อความเตือนนี้คือเพียงระงับข้อความโดยใช้ฟังก์ชัน ปราบปรามWarnings() เมื่อแปลงเวกเตอร์อักขระเป็นเวกเตอร์ตัวเลข:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R แปลงเวกเตอร์อักขระเป็นเวกเตอร์ตัวเลขได้สำเร็จโดยไม่แสดงข้อความเตือนใดๆ

วิธีที่ 2: แทนที่ค่าที่ไม่ใช่ตัวเลข

วิธีหนึ่งในการหลีกเลี่ยงข้อความเตือนตั้งแต่แรกคือการแทนที่ค่าที่ไม่ใช่ตัวเลขของเวกเตอร์ดั้งเดิมด้วยช่องว่างโดยใช้ฟังก์ชัน gsub() :

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

[1] 1 2 3 4 0

R แปลงเวกเตอร์อักขระเป็นเวกเตอร์ตัวเลขได้สำเร็จโดยไม่แสดงข้อความเตือนใดๆ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้อธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีแก้ไขใน R: ชื่อไม่ตรงกับชื่อก่อนหน้า
วิธีแก้ไขใน R: ความยาวของวัตถุที่ยาวกว่าไม่ใช่ผลคูณของความยาวของวัตถุที่สั้นกว่า
วิธีแก้ไขใน R: คอนทราสต์ใช้ได้กับปัจจัยที่มี 2 ระดับขึ้นไปเท่านั้น

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

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