使用DistripPlus拟合truncnorm分布会导致致命错误(R崩溃)

使用DistripPlus拟合truncnorm分布会导致致命错误(R崩溃),r,fitdistrplus,R,Fitdistrplus,下面的代码为我崩溃了R,没有任何有用的错误消息。有什么想法吗?我快疯了。谢谢 library(fitdistrplus) library(truncnorm) set.seed(0) x = rtruncnorm(n=30, a=0, b=Inf, mean=1, sd=0.45) my_fit = fitdist(x, "truncnorm", method='mle', fix.arg=list(a=0, b=Inf), start=l

下面的代码为我崩溃了R,没有任何有用的错误消息。有什么想法吗?我快疯了。谢谢

library(fitdistrplus)
library(truncnorm)
set.seed(0)
x = rtruncnorm(n=30, a=0, b=Inf, mean=1, sd=0.45)
my_fit = fitdist(x, "truncnorm", method='mle', fix.arg=list(a=0, b=Inf), 
                 start=list(mean=mean(x), sd=sd(x)))

作为其机制的一部分,
fitdist
使用
x
参数
numeric(0)
调用指定的密度函数。这个崩溃<代码> dTrunFrase< /Cuff>,它调用C++代码,不期望……/P>
dtruncnorm(numeric(0))
是一种更快达到相同碰撞的方法。我试图通过创建自己的
dtruncnorm()
wrapper来解决这个问题:

dtruncnorm <- function(x,a,b,mean,sd) {
    if (length(x)==0) numeric(0) else truncnorm::dtruncnorm(x, a,b,mean,sd)
}

dtruncnorm一旦Ben Bolker发现问题出在truncnorm上,而不是fitdist上,我决定使用另一个库。以下代码对我来说执行得很好:

library(fitdistrplus)
library(extraDistr)
set.seed(0)
x = rtnorm(n=30, a=0, b=Inf, mean=1, sd=0.45)
my_fit = fitdist(x, "tnorm", method='mle', fix.arg=list(a=0, b=Inf), 
                 start=list(mean=mean(x), sd=sd(x)))

凉的可以复制(R-devel,ubuntu 18.04)提交的错误报告。谢谢