【发布时间】:2018-01-20 11:05:34
【问题描述】:
我计划使用循环遍历几百列并计算中位数并针对一组变量进行计数。
代码:
grp_var <- "Species"
voi <- "Sepal.Length"
dmp <- iris%>%
select_(grp_var,voi)%>%
group_by_(grp_var)%>%
summarise_(Median_Value = median(voi),Count = n())
错误:
n() 中的错误:不应直接调用此函数
我在使用 summarise_ 时遇到了这个错误,而在我使用 summarise 时根本没有遇到任何问题。
我知道对 n() 的函数调用只是错误消息,但是在 dplyr 函数中调用它应该返回行数。 我只是对此感到愚蠢还是这是一个错误?
编辑:我对 summarise 函数没有任何冲突,plyr 没有加载。
【问题讨论】:
-
看起来你已经加载了 plyr 包。先试试
detach("package:plyr") -
我检查了冲突,没有任何冲突。我也没有加载 plyr 包。
-
问题是在
summarise_内部混合了标准和非标准评估。 keiku 在question that keeps getting linked 的回答中涵盖了该解决方案。 -
由于
dplyr现在的版本 >= 0.7,tidyeval 现在是新概念。所有*_函数现已弃用。当前dplyr的链接答案已过时@