我试图从我经常使用的包加速R函数,所以任何帮助矢量化下面的for循环将非常感激!需要帮助矢量化for循环在R
y <- array(0, dim=c(75, 12))
samp <- function(x) x<-sample(c(0,1), 1)
y <- apply(y, c(1,2), samp)
nr <- nrow(y)
nc <- ncol(y)
rs <- rowSums(y)
p <- colSums(y)
out <- matrix(0, nrow = nr, ncol = nc)
for (i in 1:nr) {
out[i, sample.int(nc, rs[i], prob = p)] <- 1
}
我遇到困难的问题是循环内对象'rs'的引用。
有什么建议吗?
有一个[sample'样式的RcppArmadillo实现](http://gallery.rcpp.org/articles/using-the-Rcpp-based-sample-implementation/)。所以,你可以尝试用Rcpp来实现,看看它是否更快。 – Roland