วิธีแก้ไขใน r: dim(x) ต้องมีความยาวเป็นบวก


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

 Error in apply(df$var1, 2, mean): dim(X) must have a positive length 

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน Apply() เพื่อคำนวณหน่วยเมตริกสำหรับคอลัมน์ของกรอบข้อมูลหรือเมทริกซ์ ในขณะที่ให้เวกเตอร์เป็นอาร์กิวเมนต์แทนกรอบข้อมูลหรือเมทริกซ์

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

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

สมมติว่าเรามี data frame ต่อไปนี้ใน R:

 #create data frame
df <- data. frame (points=c(99, 97, 104, 79, 84, 88, 91, 99),
                 rebounds=c(34, 40, 41, 38, 29, 30, 22, 25),
                 blocks=c(12, 8, 8, 7, 8, 11, 6, 7))

#view data frame
df

  points rebound blocks
1 99 34 12
2 97 40 8
3 104 41 8
4 79 38 7
5 84 29 8
6 88 30 11
7 91 22 6
8 99 25 7

ตอนนี้ สมมติว่าเราลองใช้ฟังก์ชัน Apply() เพื่อคำนวณค่าเฉลี่ยในคอลัมน์ “points”:

 #attempt to calculate mean of 'points' column
apply(df$points, 2, mean)

Error in apply(df$points, 2, mean): dim(X) must have a positive length

เกิดข้อผิดพลาดเนื่องจากจำเป็นต้องใช้ฟังก์ชัน Apply() กับกรอบข้อมูลหรือเมทริกซ์ แต่ในตัวอย่างนี้ เรากำลังพยายามนำไปใช้กับคอลัมน์เฉพาะในกรอบข้อมูล

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

วิธีแก้ไขข้อผิดพลาดนี้คือเพียงระบุชื่อของเฟรมข้อมูลให้กับฟังก์ชัน Apply() ดังนี้:

 #calculate mean of every column in data frame
apply(df, 2, mean)

  points rebound blocks 
  92,625 32,375 8,375 

จากผลลัพธ์ เราจะเห็นค่าเฉลี่ยของแต่ละคอลัมน์ในกรอบข้อมูล เช่น ค่าเฉลี่ยของคอลัมน์ “คะแนน” คือ 92,625

นอกจากนี้เรายังสามารถใช้ฟังก์ชันนี้เพื่อค้นหาเฉพาะค่าเฉลี่ยของค่าเฉพาะในกรอบข้อมูล:

 #calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)

point blocks 
92,625 8,375

สุดท้ายนี้ หากเราต้องการหาค่าเฉลี่ยของคอลัมน์เดียว เราสามารถใช้ฟังก์ชัน Mean() ได้โดยไม่ต้องใช้ฟังก์ชัน Apply() เลย:

 #calculate mean of 'points' column
mean(df$points)

[1] 92,625

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

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

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

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

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