你好,我怎么能写一个函数,它把一个数字作为输入,在这个数字中应该将aline输入现有的对象
matrix(rnorm(9),ncol=3,nrow=5)
x<-c(1,7,8)
现在应该将每个向量输入到矩阵第3行的矩阵中(所以它应该是新的co行3。其他行只是一个被推的所以旧的第3行是第4行然后
答案 0 :(得分:0)
这是我之前写的一个功能。我一直在使用它。
#Christopher Barry, 28/01/2015
insertRows <- function(DF, mtx, row){
if(is.vector(mtx)){
mtx <- matrix(mtx, 1, length(mtx), byrow=T)
}
nrow0 <- nrow(DF)
nrows <- nrow(mtx)
ncols <- ncol(DF) #should be same as for mtx
if(is.matrix(DF)){DF <- rbind(DF, matrix(0, nrows, ncols))}
if(nrow0 >= row){
DF[seq(row+nrows,nrow0+nrows),] <- DF[seq(row,nrow0),]
DF[row:(row+nrows-1),] <- mtx
}else{
DF[seq(nrow0+1,nrow0+nrows),] <- mtx
}
return (DF)
}
编辑为矩阵和数据框架工作。
答案 1 :(得分:0)
这样做的一种方法是:
aa<- matrix(rnorm(9),ncol=3,nrow=5)
x<-c(1,7,8)
rbind(aa[1:2,],x,aa[3:5,])
类似的解决方案,实际上: R: Insert a vector as a row in data.frame