为r中的for循环内的矩阵分配索引

SaZ*_*aZa 1 for-loop r matrix

我在 .CSV fromat 中有一个大数据集 200 行和 5 列。这是数据集的一部分:

 4.1    1.2 47.3    10954   51
 3.4    1.5 0.5 1   5316
 0.3    30.1    1.2 10  875
 0.2    0.4 119 0   0
   0    52.6    0.1 0   3.1
   0    0.3 880 0   0
   0    0.1 148 180 0
   0    0.1 490.2   0   0.4
   0    1.1 0.2 0.6 0.9
   0    0   0   0   0
Run Code Online (Sandbox Code Playgroud)

我想编写一个代码来分别读取每 10 行,并使用 for 循环将其存储在矩阵(10 x 5)中。所以最后我有 20 个矩阵(10*5)。这是命令行:

all.data   <- read.csv("C:\\Users\\Desktop\\myarray.csv",header=FALSE)#read whole data
for (k in 1:20){   
data_temp.k <- array(NA, dim=c(10,5))
  for( i in 1:10 ){
    for( j in 1:5 ) {
        data_temp.k[i,j] <- all.data[(k-1)*10:k*10,j]
    }
  }
}
write.csv(data_temp.k,"mymatrix.k")
Run Code Online (Sandbox Code Playgroud)

我知道这个问题在某种程度上与“k”及其作为矩阵索引和计数器的双重功能有关。

jub*_*uba 5

不要为此使用循环,请使用行索引:

## Sample data
set.seed(1)
m <- matrix(rnorm(1000),nrow=200,ncol=5)
## Generate indices to keep
indices <- seq(1,nrow(m), by=10)
## Subset matrix rows
m[indices,]
Run Code Online (Sandbox Code Playgroud)