我正在尝试使用以下代码拟合分布:
fit.gamma <- fitdist(x, distr = "gamma", method = "mle")
我收到以下错误:
fitdist(x, distr = "gamma", method = "mle") 中的错误:数据必须是长度大于 1 的数值向量
X 是一个数值变量。绘制时看起来像这样。1
为什么我会收到此错误。非常感谢任何提示。
我正在尝试使用以下代码拟合分布:
fit.gamma <- fitdist(x, distr = "gamma", method = "mle")
我收到以下错误:
fitdist(x, distr = "gamma", method = "mle") 中的错误:数据必须是长度大于 1 的数值向量
X 是一个数值变量。绘制时看起来像这样。1
为什么我会收到此错误。非常感谢任何提示。
问题似乎是您使用na.omit
了 ,它没有返回fitdist
预期的向量。
而不是这个
x <- na.omit(x.init)
fit.gamma <- fitdist(x, distr = "gamma", method = "mle")
尝试将输出转换na.omit
为向量
x <- c(na.omit(x.init))
fit.gamma <- fitdist(x, distr = "gamma", method = "mle")
> class(x)
[1] "numeric"
> str(x)
atomic [1:18839] 7 175 386 375 397 333 378 394 330 346 ...
- attr(*, "na.action")=Class 'omit' int [1:17] 1 209 267 286 288 297 299 300 304 305 ...
> dput(head(x, 20))
c(7, 175, 386, 375, 397, 333, 378, 394, 330, 346, 306, 344, 308,
278, 291, 284, 252, 294, 277, 241)
谢谢