我试图用epdfPlot()函数计算一个连续变量的经验概率分布。当我接受默认的discrete=FALSE时,我一直会收到一个错误。
Error in UseMethod("density") :
no applicable method for 'density' applied to an object of class "c('double', 'numeric')"通过阅读文档,我认为这在某种程度上是函数如何将参数传递给stats::density()的结果,因为我在设置discrete = TRUE时没有这个问题。正如文档所指出的,参数density.arg.list=NULL在discrete = TRUE时被忽略。下面是一个可重复的例子:
library(EnvStats)
dat<-rnorm(500, 0, 1)
demo1<-epdfPlot(dat, discrete = FALSE, plot.it=FALSE) # throws error
demo2<-epdfPlot(dat, discrete = TRUE, plot.it=FALSE) # works
demo2这可能是个窃听器吗?
发布于 2022-05-10 23:17:03
结果发现,发生这种情况是因为与labdsv::density()函数发生冲突。EnvStats::epdfPlot()没有指定stats::density(),所以当density()被另一个包屏蔽时,EnvStats::epdfPlot()会调用该函数。我试着在不同的会话中运行代码,并且没有出错。
https://stackoverflow.com/questions/72193778
复制相似问题