วิธีแก้ไขในอาร์กิวเมนต์ r: เกี่ยวข้องกับจำนวนบรรทัดที่แตกต่างกัน
ข้อผิดพลาดที่คุณอาจพบใน R คือ:
arguments imply differing number of rows: 6, 5
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามสร้าง data frame และจำนวนแถวในแต่ละคอลัมน์ของ data frame ไม่เท่ากัน
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรากำลังพยายามสร้าง data frame ใน R โดยใช้เวกเตอร์ 3 ตัว:
#definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)
#attempt to create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)
Error in data.frame(x1 = x1, x2 = x2, y = y):
arguments imply differing number of rows: 6, 5
เราได้รับข้อผิดพลาดเนื่องจากเวกเตอร์แต่ละตัวมีความยาวไม่เท่ากัน ดังนั้นแต่ละคอลัมน์ในกรอบข้อมูลผลลัพธ์จึงมีจำนวนแถวไม่เท่ากัน
เราสามารถตรวจสอบได้โดยการพิมพ์ความยาวของเวกเตอร์แต่ละตัว:
#print length of each vector
length(x1)
[1] 6
length(x2)
[1] 5
length(y)
[1] 6
เราจะเห็นว่าเวกเตอร์ x2 มีความยาว 5 ซึ่งไม่ตรงกับความยาวของเวกเตอร์ x1 และ y
วิธีการแก้ไขข้อผิดพลาด
เพื่อแก้ไขข้อผิดพลาดนี้ เราเพียงแค่ต้องแน่ใจว่าเวกเตอร์แต่ละตัวมีความยาวเท่ากัน เพื่อให้แต่ละคอลัมน์ในกรอบข้อมูลผลลัพธ์มีจำนวนแถวเท่ากัน
ตัวอย่างเช่น เราสามารถแพดเวกเตอร์ที่สั้นที่สุดด้วยค่า NA เพื่อให้เวกเตอร์แต่ละตัวมีความยาวเท่ากัน:
#definevectors
x1 <- c(1, 2, 3, 4, 5, 6)
x2 <- c(8, 8, 8, 7, 5)
y <- c(9, 11, 12, 13, 14, 16)
#pad shortest vector with NA's to have same length as longest vector
length(x2) <- length(y)
#create data frame using vectors as columns
df <- data. frame (x1=x1, x2=x2, y=y)
#view resulting data frame
df
x1 x2 y
1 1 8 9
2 2 8 11
3 3 8 12
4 4 7 13
5 5 5 14
6 6 NA 16
โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดเนื่องจากแต่ละคอลัมน์ในกรอบข้อมูลผลลัพธ์มีจำนวนแถวเท่ากัน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:
วิธีแก้ไขในอาร์กิวเมนต์ R: ไม่ใช่ทั้งตัวเลขหรือตรรกะ: return na
วิธีซ่อมแซมใน R: อาร์กิวเมนต์ที่ไม่ใช่ตัวเลขของตัวดำเนินการไบนารี
วิธีการซ่อมแซมใน R: การเปลี่ยนมีความยาวเป็นศูนย์