Re: [R] inserting rows into a matrix

From: jim holtman <jholtman_at_gmail.com>
Date: Fri 28 Jul 2006 - 02:17:14 EST

replace 0 with NA and then back again:

> f

function(a){cbind(a,a+1,rev(a)
)}
> f(1:5)

     a

[1,] 1 2 5
[2,] 2 3 4
[3,] 3 4 3
[4,] 4 5 2
[5,] 5 6 1

> x <- c(1,0,3,4,0,5)
> f(x)

     a

[1,] 1 2 5
[2,] 0 1 0
[3,] 3 4 4
[4,] 4 5 3
[5,] 0 1 0
[6,] 5 6 1

> x[x==0] <- NA
> f(x)

      a

[1,]  1  2  5
[2,] NA NA NA
[3,]  3  4  4
[4,]  4  5  3
[5,] NA NA NA
[6,]  5  6  1

> y <- f(x)
> y[is.na(y)] <- 0
> y

     a

[1,] 1 2 5
[2,] 0 0 0
[3,] 3 4 4
[4,] 4 5 3
[5,] 0 0 0
[6,] 5 6 1

>

On 7/27/06, Robin Hankin <r.hankin@noc.soton.ac.uk> wrote:
>
> 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@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

	[[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri Jul 28 02:22:53 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 28 Jul 2006 - 04:18:49 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.