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.
