在R中重复一个for循环

时间:2014-12-01 14:55:54

标签: r loops

假设我有一个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  
}   

1 个答案:

答案 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