R Gibbs采样器错误下标越界

R Gibbs采样器错误下标越界,r,sample,R,Sample,我正在构建一个小型gibbs采样器,但R返回:“错误在[中,问题是你没有初始化向量或矩阵,因此向量的长度为0,矩阵将只包含一个NA。因此你不能写入任何位置I,因为它不存在 改变 alpha <- c() beta <- c() mu <- matrix() Y <- matrix () alpha问题在于,你没有初始化向量或矩阵,因此向量的长度为0,矩阵将只包含一个NA。因此,你不能将任何内容写入位置i,因为它不存在 改变 alp

我正在构建一个小型gibbs采样器,但R返回:“错误在
[中,问题是你没有初始化向量或矩阵,因此向量的长度为0,矩阵将只包含一个NA。因此你不能写入任何位置I,因为它不存在

改变

    alpha <- c()
    beta <- c()
    mu <- matrix()
    Y <- matrix ()

alpha问题在于,你没有初始化向量或矩阵,因此向量的长度为0,矩阵将只包含一个NA。因此,你不能将任何内容写入位置i,因为它不存在

改变

    alpha <- c()
    beta <- c()
    mu <- matrix()
    Y <- matrix ()

alpha开始删除部分代码以隔离错误所在。我建议您设置
选项(error=recover)
,以了解问题出在哪一行代码上。然后查看变量,您可能会知道发生了什么。此外,在线上还有许多文档解释如何调试(例如,请参阅,或在此搜索)@Jealie感谢您的回复。是的。我发现了有问题的代码,我只是不知道为什么?如果您知道
mu
将有多大,请将其初始化为全尺寸:
mu=matrix(NA,nrow=length(x),ncol=5)
。开始删除部分代码以隔离错误所在位置。我建议您设置
选项(error=recover)
,以了解问题出在哪一行代码上。然后查看变量,您可能会了解出了什么问题。此外,在线有许多文档解释如何调试(例如,请参阅,或在此搜索)@Jealie感谢您的回复。是的。我发现了有问题的代码,我只是不知道为什么?如果您知道
mu
将有多大,请将其初始化为全尺寸:
mu=matrix(NA,nrow=length(x),ncol=5)
。这确实是解决方案,但对于记录,未初始化的矩阵大小为1x1,并且包含
NA
。只需键入
matrix()
进行验证:)您好,您能帮我看看这个问题吗?谢谢。这确实是解决方案,但请注意,未初始化的矩阵的大小为1x1,并且包含
NA
。只需键入
matrix()
进行验证:)您好,您能帮我看看这个问题吗?谢谢。
    alpha <- c()
    beta <- c()
    mu <- matrix()
    Y <- matrix ()
    alpha <- numeric(x)
    beta <- numeric(x)
    mu <- matrix(0,x,5)
    Y <- matrix (0,x,5)