วิธีแก้ไข: ข้อผิดพลาดใน xy.coords (x, y, xlabel, ylabel, log): ความยาว 'x' และ 'y' แตกต่างกัน


ข้อผิดพลาดทั่วไปที่คุณอาจพบใน R คือ:

 Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ 

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามสร้างพล็อตของตัวแปรสองตัว แต่ตัวแปรมีความยาวไม่เท่ากัน

บทช่วยสอนนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดนี้อย่างชัดเจน

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรากำลังพยายามสร้างแผนภาพกระจายของตัวแปรสองตัวต่อไปนี้ใน R:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#attempt to create scatterplot of x vs. y
plot(x, y)

Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ

เราได้รับข้อผิดพลาดเนื่องจากความยาวของ x และ y ไม่เท่ากัน

เราสามารถยืนยันสิ่งนี้ได้โดยการพิมพ์ความยาวของแต่ละตัวแปร:

 #print length of x
length(x)

[1] 4

#print length of y
length(y)

[1] 6

#check if length of x and y are equal
length(x) == length(y)

[1] FALSE

วิธีการแก้ไขข้อผิดพลาด

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือตรวจสอบให้แน่ใจว่าเวกเตอร์ทั้งสองมีความยาวเท่ากัน:

 #define x and y variables to have same length
x <- c(2, 5, 5, 8, 9, 12)
y <- c(22, 28, 32, 35, 40, 41)

#confirm that x and y are the same length
length(x) == length(y)

[1] TRUE

create scatterplot of x vs. y
plot(x, y)

หากเวกเตอร์ตัวหนึ่งสั้นกว่าอีกตัวคุณสามารถเลือกที่จะพล็อตค่าตามความยาวของเวกเตอร์ที่สั้นกว่าเท่านั้น

ตัวอย่างเช่น หากเวกเตอร์ xa มี 4 ค่า และเวกเตอร์ y มี 6 ค่า เราสามารถสร้าง Scatterplot โดยใช้เพียง 4 ค่าแรกของเวกเตอร์แต่ละตัว:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#create scatterplot of first 4 pairwise values of x vs. y
plot(x, y[1: length (x)])

โปรดทราบว่ามีเพียงสี่ค่าแรกของเวกเตอร์แต่ละตัวเท่านั้นที่ใช้ในการสร้างพอยต์คลาวด์

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

วิธีแก้ไขใน R: NAs ที่ถูกบังคับโดยการบังคับ
วิธีซ่อมแซมใน R: คำใบ้อยู่นอกขอบเขต
วิธีแก้ไข: ความยาวของวัตถุที่ยาวขึ้นไม่ใช่ผลคูณของความยาวของวัตถุที่สั้นกว่า

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

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