Skip to content
Back to formatted view

Raw Message

Message-ID: <alpine.BSF.2.00.1706070902050.50464@pedal.dcn.davis.ca.us>
Date: 2017-06-07T16:25:46Z
From: Jeff Newmiller
Subject: Adding zeros in each dimension of an array
In-Reply-To: <CAHLnndbi3akoyNAhjyntBY00gX4ihoJ0Rqcbrbqa46iScbXbjw@mail.gmail.com>

Please read
https://www.lifewire.com/how-to-send-a-message-in-plain-text-from-gmail-1171963

Re your question: easy is in the eye of the beholder.

a <- array( 1:12, dim = c( 2, 2, 3 ) )
b <- array( 0, dim = dim( a ) + 1 )
b[ 1:2, 1:2, 1:3 ] <- a

If you want to do a lot of this, it could be wrapped for convenience 
though implementing that last expression without hardcoding the sequences 
may not be obvious:

expandArray <- function( a ) {
   b <- array( 0, dim = dim( a ) + 1 )
   do.call( `[<-`, c( list( b ), lapply( dim( a ), seq.int ), list( a ) ) )
}
expandArray( a )

On Wed, 7 Jun 2017, li li wrote:

> For a data frame, we can add an additional row or column easily. For
> example, we can add an additional row of zero and an additional row of
> column as follows.
>
> Is there an easy and similar way to add zeros in each dimension? For
> example, for
> array(1:12, dim=c(2,2,3))?
>
> Thanks for your help!!
>   Hanna
>
>
>
>> x <- as.data.frame(matrix(1:20,4,5))> x[5,] <- 0> x[,6] <- 0> x  V1 V2 V3 V4 V5 V6
> 1  1  5  9 13 17  0
> 2  2  6 10 14 18  0
> 3  3  7 11 15 19  0
> 4  4  8 12 16 20  0
> 5  0  0  0  0  0  0
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k