如何修复:n() 中的错误:不应直接调用此函数
在 R 中您可能遇到的错误是:
Error in n(): This function should not be called directly
当您尝试使用dplyr包的n()函数,但plyr包是在dplyr包之后加载时,通常会发生此错误。
本教程准确解释了如何修复此错误。
如何重现错误
假设我们在 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
现在假设我们尝试使用dplyr的summary()函数来计算按团队分组的行数:
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
我们收到错误,因为我们在dplyr包之后加载了plyr包,这导致了问题。
如何修复错误
修复此错误的方法是简单地使用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”