我試圖從我經常使用的包加速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