R 复制时如何重新生成新矩阵
我有以下脚本:R 复制时如何重新生成新矩阵,r,loops,replicate,R,Loops,Replicate,我有以下脚本: randomdiv <- function(ncells, ndivs, size, accuracy) { sz <- matrix(nrow = ncells, ncol = ndivs) for (j in 1:ncells) { total_subunits <- size for (i in 1:ndivs) { accurate_subunits <- (size * accuracy) random_subunits <- roun
randomdiv <- function(ncells, ndivs, size, accuracy) { sz <- matrix(nrow = ncells, ncol = ndivs)
for (j in 1:ncells) {
total_subunits <- size
for (i in 1:ndivs)
{
accurate_subunits <- (size * accuracy)
random_subunits <- round(size - accurate_subunits)
random_inh <- rbinom(1, random_subunits, 0.5)
accurate_inh <- (accurate_subunits / 2)
total_inh <- 2 * (random_inh + accurate_inh)
sz[j,i] <- total_inh
total_subunits <- total_inh
}
}
return (do.call(rbind, replicate(100, sz, simplify = FALSE)))
}
randomdiv仅仅因为sz
出现在randomdiv
中,并不意味着randomdiv
将在复制sz
时被调用。它将是globalenv()
中的任何值。不会调用该函数。您应该从randomdiv
返回sz
,并从replicate
调用randomdiv
。我理解您的观点,但我特别尝试将这种函数写入脚本中,因此当我点击randomdiv()时
它将返回矩阵的一个副本,从中我可以直接进行统计分析。关键是我必须改变大小
和精度
进行分析,因此如果我无法让脚本返回复制矩阵,我必须对矩阵的每个组合进行向量化,然后使用它们。这意味着它仍然不是随机生成的,并且在代码中添加了大量额外的行。