使用循环函数删除矩阵的第k行

时间:2014-10-20 13:48:30

标签: r matrix

我创建了一个名为col of dimension 150x4的矩阵。

现在我想通过绑定(col,col1,....,col149)来创建一个150x600矩阵,其中colk是通过用零替换col的前k行来创建的。

我的col1代码是

c1<-col[-1,] row<-(0,0,0,0) col1<-rbind(row,c1)

然而,如果k = 149,那真的很难。我想循环功能是必需的。另外,我创建的col1看起来不像矩阵。当我在R中打印它时,没有行号。

由于我是R的新手,不知道如何在R中做这些事。

我的col代码是col&lt; -t(res),可以看到 How to make a matrix from a given vector by using for loop

有人可以帮我解决这个问题吗?提前致谢 !

1 个答案:

答案 0 :(得分:0)

可能有帮助:

res1 <-  cbind(colN,do.call(`cbind`, lapply(1:149, function(i) {
                        rN <- matrix(rowN[col(colN[1:i,,drop=FALSE])], ncol=4)
                        rbind(rN, colN[-(1:i),]) 
                       })))

  dim(res1)
 #[1] 150 600

数据

从链接

set.seed(25)
x<-runif(150,-2,2)
x1<-c(0,0,0,0,x)
n <- length(x1)-1
res <- sapply((4:n)-3, function(i) x1[(i+3):i])
colN <- t(res)
rowN <- rep(0,4)