无法存储double for循环的结果

时间:2012-07-07 13:54:14

标签: r for-loop store

我对R很新,并写了一个双重for循环,它完全符合我的要求(具有一定块长度的索引号的块引导)。但是,我无法在矩阵中存储print(x_sample)显示的内容。 我尝试了lapply以及我在这里找到的所有其他东西,但我自己无法解决问题。我真的希望你能提供帮助。 非常感谢提前

Here is my code:
x <- c(1:1060,1,2,3)
x_sample  <- numeric(119*4)
for (i in 1:3){
    for (j in 0:119){
          idx <- sample(1:1060,1,replace=TRUE)
          x_sample[(4*j+1):(4*j+4)] <- x[(idx):(idx+3)] }
    print(x_sample)}

2 个答案:

答案 0 :(得分:2)

你的意思是这样的吗?:

values <- c(1:1060, 1, 2, 3)
m <- sapply(sample(1:1060, 360, replace=TRUE), function(idx)values[(idx):(idx+3)])

答案 1 :(得分:1)

在循环之前创建一个矩阵,然后填充矩阵:

x <- c(1:1060,1,2,3)
mat <- matrix(nrow=480, ncol = 3)
for (i in 1:3){
  for (j in 0:119){
    idx <- sample(1:1060,1,replace=TRUE)
    mat[(4*j+1):(4*j+4), i] <- x[(idx):(idx+3)] }
  print(mat)}