Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何要求R逐列编译矩阵?_R_Loops_Matrix - Fatal编程技术网

如何要求R逐列编译矩阵?

如何要求R逐列编译矩阵?,r,loops,matrix,R,Loops,Matrix,我试图生成一个矩阵sz,首先应用一个二项式,然后从pombe\u new\u subs的相应列中添加值,然后将该组合值作为size输入下一列 在经历了许多挫折之后,下面的代码是我最终得到的,但它不起作用——我遇到的问题是 # Error in sz[j, i + 1] = sz[, i] + pombe_new_subs[, i] : # number of items to replace is not a multiple of replacement length pombe_new_

我试图生成一个矩阵
sz
,首先应用一个二项式,然后从
pombe\u new\u subs
的相应列中添加值,然后将该组合值作为
size
输入下一列

在经历了许多挫折之后,下面的代码是我最终得到的,但它不起作用——我遇到的问题是

# Error in sz[j, i + 1] = sz[, i] + pombe_new_subs[, i] : 
# number of items to replace is not a multiple of replacement length

pombe_new_subs <- rmultinom(3, 15, prob = c(0.3, 0.3, 0.3))

randomdiv <- function(nchrom, ndivs, size) {
    sz <- matrix(nrow = nchrom, ncol = ndivs) 
    for (j in 1:nchrom) {
        n <- size
        for (i in 1:ndivs) {
            n <- rbinom(1, n, 0.5)  
            sz[j,i] <- n
        }
        sz[j,i+1] = sz[ ,i] + pombe_new_subs[ ,i]
        sz[j, i+1] <- n
    }
    return (sz)
}

randomdiv(3, 3, 10)
#sz[j,i+1]中的错误=sz[,i]+pombe_new_subs[,i]:
#要替换的项目数不是替换长度的倍数

我想你可能想尝试缩进你的代码,你也可以考虑让你的例子具有可重复性。我想我已经缩进了它“弗兰克”。我做了一些小的调整,这意味着如果您键入
randomdiv(3,3,10)
@Heroka@Jordan这可能很有用:如何创建一个。您的代码应该能够在新的会话中运行并产生所描述的错误,而不必对变量或函数的调用方式进行假设。@Frank感谢您演示缩进的含义,我以后会记得的!