# [R] setting elements to NA across an array

Dr Carbon drcarbon at gmail.com
Wed Jul 27 19:44:32 CEST 2005

```Sorry for being obtuse.

How can I build a logical statement that will set foo[2,2,] <- NA and
foo[3,5,] <- NA? Something like, if any row and column are NA, then
set NA to that row and column to NA for the entire array....

On 7/27/05, John Fox <jfox at mcmaster.ca> wrote:
> Dear Dr Carbon,
>
>
> > -----Original Message-----
> > From: r-help-bounces at stat.math.ethz.ch
> > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Dr Carbon
> > Sent: Wednesday, July 27, 2005 12:19 PM
> > To: r-help at r-project.org
> > Subject: [R] setting elements to NA across an array
> >
> > Please excuse what is obviously a trivial matter...
> >
> > I have a large 3-d array. I wish to set the third dimension
> > (z) to NA if there are any NA values in the first two
> > dimnesions (xy). So, given array foo:
> >
> >   foo <- array(data = NA, dim = c(5,5,3))
> >   foo[,,1] <- matrix(rnorm(25), 5, 5)
> >   foo[,,2] <- matrix(rnorm(25), 5, 5)
> >   foo[,,3] <- matrix(rnorm(25), 5, 5)
> >
> > I'll set two elements to NA
> >
> >   foo[2,2,1]<- NA
> >   foo[3,5,2]<- NA
> >   foo
> >
> > Now I want to set foo[2,2,] <- NA and foo[3,5,] <- NA. How
> > can I build a logical statement to do this?
> >
>
> That should work just as you've specified it: That is, elements in all
> "layers" in the second row, second column and in the the third row, fifth
> column of the array should be NA. Since you posed the question, I suppose
> that I'm missing something.
>
> I hope this helps,
>  John
>
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help