Hi Christos

thanks for this, but it won't work because in my application
f(A2) will fail if there are any zeroes in A2.


cheers

rksh


On 27 Jul 2006, at 15:10, Christos Hatzis wrote:

> This is not as elegant, but should work:
>
> a3 <- f(A2)
> a3[ which( apply(a3,1,prod) == 0 ), ] <- rep(0,ncol(a3))
> a3
>
> Essentially use the product to pick out the rows with at least one  
> 0 and
> replace these rows with 0s.
>
> HTH.
> -Christos
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Robin Hankin
> Sent: Thursday, July 27, 2006 9:54 AM
> To: RHelp
> Subject: [R] inserting rows into a matrix
>
> 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
>
> ______________________________________________
> [email protected] 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.
>
>

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743

______________________________________________
[email protected] 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.

Reply via email to