วิธีแก้ไข: ข้อผิดพลาดใน n(): ไม่ควรเรียกใช้ฟังก์ชันนี้โดยตรง


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

 Error in n(): This function should not be called directly

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน n() ของแพ็คเกจ dplyr แต่แพ็คเกจ plyr ถูกโหลด หลังจาก แพ็คเกจ dplyr

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

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

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

 #define data frame
df <- data. frame (team=rep(c('A', 'B'), each= 5 ),
                 points=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),
                 assists=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80))

#view data frame
df

   team points assists
1 to 2 4
2 to 4 7
3 to 6 11
4 to 8 16
5 to 10 22
6 B 12 29
7 B 14 38
8 B 16 49
9 B 18 63
10 B 20 80

ตอนนี้ สมมติว่าเราพยายามใช้ฟังก์ชัน summary() ของ dplyr เพื่อนับจำนวนแถว โดยจัดกลุ่มตามทีม:

 library (dplyr)
library (plyr)

#attempt to count rows by team
df %>%
  group_by(team) %>%
  summarize(count = n())

Error in n(): This function should not be called directly 

เราได้รับข้อผิดพลาดเนื่องจากเราโหลดแพ็คเกจ plyr หลังแพ็คเกจ dplyr ซึ่งทำให้เกิดปัญหา

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

วิธีแก้ไขข้อผิดพลาดนี้คือใช้ dplyr:summarize เพื่อให้ R รู้ว่าคุณต้องการใช้ฟังก์ชัน สรุป จากแพ็คเกจใด:

 library (dplyr)
library (plyr)

#count rows by team
df %>%
  group_by(team) %>%
  dplyr::summarize(count = n())

# A tibble: 2 x 2
  team count
   
1 to 5
2 B 5

โปรดทราบว่าครั้งนี้เราสามารถนับจำนวนแถวที่จัดกลุ่มตามทีมโดยไม่มีข้อผิดพลาด เนื่องจากเราใช้ dplyr::summarize เพื่อทำการสรุป

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

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

วิธีแก้ไขใน R: ข้อผิดพลาดใน as.Date.numeric(x): ต้องระบุ “origin”
วิธีแก้ไข: ข้อผิดพลาดใน stripchart.default(x1, …): วิธีการลงจุดไม่ถูกต้อง
วิธีแก้ไข: ข้อผิดพลาดใน eval (predvars, data, env): ไม่พบวัตถุ ‘x’

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

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