2012-07-07 81 views
0

我对R很新,并且写了一个双循环,它完全符合我的要求(具有特定块长度的索引号的块引导程序)。但是,我无法在矩阵中存储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)} 
+0

请接受答案这对你最有帮助:)答案左侧会有一个复选标记 - 点击它接受答案。 – WendiKidd 2012-07-08 06:19:05

回答

2

非常感谢你的意思是这样?:

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

感谢您的回答! – user1508780 2012-07-07 16:57:36

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)} 
+0

谢谢你EDi!解决方案比我预想的要容易得多。猜猜我需要练习...... – user1508780 2012-07-07 16:56:50