วิธีแก้ไข: จำนวนแถวในผลลัพธ์ไม่ใช่ผลคูณของความยาวเวกเตอร์ (arg 1)


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

 Warning message:
In cbind(A, B, C):
  number of rows of result is not a multiple of vector length (arg 1)

โดยทั่วไปคำเตือนนี้จะเกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน cbind() เพื่อผูกคอลัมน์เข้าด้วยกันของเวกเตอร์ที่มีความยาวต่างกัน

โปรดทราบว่าข้อความนี้เป็นเพียง คำเตือน และโค้ดของคุณจะยังคงทำงานต่อไป แต่ผลลัพธ์ที่คุณได้รับอาจแตกต่างไปจากที่คุณคาดไว้

ตัวอย่างต่อไปนี้แสดงวิธีหลีกเลี่ยงคำเตือนนี้ในทางปฏิบัติ

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

สมมติว่าเราใช้ฟังก์ชัน cbind() เพื่อผูกเวกเตอร์สามตัวเข้าด้วยกันเป็นคอลัมน์ในกรอบข้อมูล:

 #define three vectors with different lengths
A = c(4, 2, 3, 6)
B = c(9, 1, 8, 7, 0, 7)
C = c(3, 5, 3, 3, 6, 4)

#column bind three vectors into data frame
df <- cbind(A, B, C)

#view data frame
df

Warning message:
In cbind(A, B, C):
  number of rows of result is not a multiple of vector length (arg 1)
     ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] 4 0 6
[6,] 2 7 4

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

สิ่งนี้เรียกว่า “การรีไซเคิล” ใน R.

วิธีหลีกเลี่ยงคำเตือน

เพื่อหลีกเลี่ยงคำเตือนนี้โดยสิ้นเชิง เราต้องแน่ใจว่าเวกเตอร์แต่ละตัวที่เราใช้มีความยาวเท่ากัน

วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการเติมค่าที่หายไปในเวกเตอร์ที่สั้นที่สุดด้วยค่า NA ดังต่อไปนี้:

 #calculate max length of vectors
max_length <- max(length(A), length(B), length(C))

#set length of each vector equal to max length
length(A) <- max_length                      
length(B) <- max_length
length(C) <- max_length 

#cbind the three vectors together into a data frame
df <- cbind(A, B, C)

#view data frame
df

      ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] NA 0 6
[6,] NA 7 4

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

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

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

วิธีแก้ไขในอาร์กิวเมนต์ R: เกี่ยวข้องกับจำนวนบรรทัดที่แตกต่างกัน
วิธีแก้ไขใน R: ข้อผิดพลาดในการเลือกอาร์กิวเมนต์ที่ไม่ได้ใช้
วิธีการซ่อมแซมใน R: การเปลี่ยนมีความยาวเป็นศูนย์

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

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