gpt4 book ai didi

r - dplyr::n() 返回 "Error: This function should not be called directly"

转载 作者:行者123 更新时间:2023-12-04 13:55:03 25 4
gpt4 key购买 nike

如果我做:

dplyr::mutate(MeanValue = mean(RSSI), ReadCount = n())

一切正常。
但是当我尝试限定该功能时:
dplyr::mutate(MeanValue = mean(RSSI), ReadCount = dplyr::n())

我收到标题中提到的错误。

所以,我真的没有问题,我可以避免这样做,但我很好奇它为什么会发生。我已经看过另一个问题( dplyr: "Error in n(): function should not be called directly" ),但据我所知, dplyr 是我使用的唯一库。无论如何,我尝试按照答案的建议进行操作,但是
detach(package:plyr)

结果是

Error in detach(package:plyr) : invalid 'name' argument and


conflicts()

没有提到 n():

[1] "filter" "lag" "body<-" "intersect" "kronecker" "setdiff" "setequal" "union"
, most of which is cause by dplyr.



我想我不是唯一对此感到困惑的人吗?

最佳答案

So, I do not really have a problem, I can just avoid [writing dplyr::n()], but I'm curious about why it even happens.



这是 dplyr::n 的源代码在 dplyr 0.5.0 中:
function () {
stop("This function should not be called directly")
}

这就是完全限定形式引发此错误的原因:该函数始终返回错误。 (我的猜测是错误抛出函数 dplyr::n 存在,因此 n() 可以有一个带有示例的典型文档页面。)

内部 filter/ mutate/ summarise声明, n()没有调用这个函数。相反,一些内部函数计算表达式 n() 的组大小。 .这就是为什么当 dplyr 未加载时以下工作的原因:
n()
#> Error: could not find function "n"

library(magrittr)
iris %>%
dplyr::group_by(Species) %>%
dplyr::summarise(n = n())
#> # A tibble: 3 × 2
#> Species n
#> <fctr> <int>
#> 1 setosa 50
#> 2 versicolor 50
#> 3 virginica 50

这里 n()不能映射到函数,所以我们得到一个错误。但是当在 dplyr 动词中使用它时, n()确实映射到某物并返回组大小。

关于r - dplyr::n() 返回 "Error: This function should not be called directly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64012121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com