xy.coords(x, y, xlabel, ylabel, log) 错误:Gamma 分布图的 'x' 和 'y' 长度不同

Error in xy.coords(x, y, xlabel, ylabel, log) : 'x' and 'y' lengths differ for Gamma distribution plot

我试图在图表上绘制 Gamma(alpha=29, beta = 3) 的 pdf 分布,但出现错误:"Error in xy.coords(x, y, xlabel, ylabel, log) : 'x' and 'y' lengths differ"。为什么?

x <- seq(0, 1000, by = 1)
y <- dgamma(x, shape = 3, rate = 1/29, scale = 1/rate, log = FALSE)
plot(x, y, xlabel = "x", ylabel = "Gamma(29,3)")

看来您可能忽略了错误。对我来说,这条线

y <- dgamma(x, shape = 3, rate = 1/29, scale = 1/rate, log = FALSE)

给出错误

Error in dgamma(length(x), shape = 3, rate = 1/29, scale = 1/rate, log = FALSE) : object 'rate' not found

所以您的 y 变量永远不会设置。您必须有一个与 x 长度不同的其他代码的遗留代码。您应该在绘图之前通过查看 length(x) 和 `length(y) 进行检查。使用

y <- dgamma(x, shape = 3, rate = 1/29, log = FALSE)

相反。这将使用您想要的 rate 的默认值。也许您正在查看函数的默认参数值?调用函数时给参数传值时不能指定其他参数的名称,只能在定义函数时指定。

您的 plot() 命令 returns 也是一个错误。参数名称是 xlab=ylab= 而不是 xlabel=ylabel=