# [R] inserting rows into a matrix

Neuro LeSuperHéros neuro3000 at hotmail.com
Thu Jul 27 16:16:51 CEST 2006

```Hello Robin,

Here's a solution.

library(micEcon)

nozeros <-f(A2[A2>0])
zeroslines <- which(A2==0) #identify rows to insert zeros
withzeros <-nozeros #initialize matrix with zeros
for (i in zeroslines){
withzeros <- insertRow(withzeros,i,0)
}
withzeros

Neurooo

>From: Robin Hankin <r.hankin at noc.soton.ac.uk>
>To: RHelp <r-help at stat.math.ethz.ch>
>Subject: [R] inserting rows into a matrix
>Date: Thu, 27 Jul 2006 14:54:02 +0100
>
>Hi
>
>
>I have a little vector function that takes a vector A of strictly
>positive integers
>and outputs a matrix M  each of whose columns is the vector, modified in
>a complicated combinatorical way.
>
>Now I want to generalize the function so that A can include zeroes.
>Given A,
>I want to strip out the zeroes, pass it to my function, and pad  M
>   with rows at positions corresponding to the zeroes of A.
>
>Commented, minimal, self-contained, reproducible toy example follows.
>
>
>f <- function(a){cbind(a,a+1,rev(a))}  #real function a ghastly
>nightmare
>
>   A <- 1:5
>   f(A)
>       a
>[1,] 1 2 5
>[2,] 2 3 4
>[3,] 3 4 3
>[4,] 4 5 2
>[5,] 5 6 1
>
>
># f() works as desired.
>
># Now introduce A2, that includes zeroes.  In my application, f(A2)
>would fail
>because of the zeroes.
>
>A2 <- c(1,0,0,2,4,0,3)
>
>I can strip the zeroes out and call f():
>   f(A2[A2>0])
>       a
>[1,] 1 2 3
>[2,] 2 3 4
>[3,] 4 5 2
>[4,] 3 4 1
>
>which is fine.  How to put the zeroes back in in the appropriate rows
>and get the following:
>
>  > cbind(c(1,0,0,2,4,0,3),c(2,0,0,3,5,0,4),c(3,0,0,4,2,0,1))
>       [,1] [,2] [,3]
>[1,]    1    2    3
>[2,]    0    0    0
>[3,]    0    0    0
>[4,]    2    3    4
>[5,]    4    5    2
>[6,]    0    0    0
>[7,]    3    4    1
>  >
>
>
>
>anyone?
>
>
>
>--
>Robin Hankin
>Uncertainty Analyst
>National Oceanography Centre, Southampton
>European Way, Southampton SO14 3ZH, UK
>   tel  023-8059-7743
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help