假设我有一个10 x 10
矩阵。我想从每列中随机选择2个数字,并取这些数字的差值的平方。我为此编写了R代码并获得了10个值,但我希望重复这一点,比方说,100次,在这种情况下,我需要获得100 * 10 = 1000个数字。我怎么能这样做?
x <- rnorm(100)
m <- 10
n <- 10
X <- matrix(x,m,n)
for (i in 1:m ) {
y <- sample(X[,i],2,rep=F)
q2[i] <- (y[1]-y[2])^2
}
答案 0 :(得分:2)
或者@Davide Passaretti和@nrussell在评论中提到,您可以使用replicate
f1 <- function(x, m){
q2 <- vector(mode='numeric', length= m)
for(i in 1:m){
y <- sample(x[,i], 2, rep=FALSE)
q2[i] <- (y[1]-y[2])^2
}
q2
}
n <- 100
res <- replicate(100, f1(X, m))
prod(dim(res))
#[1] 1000