Re: [R] setting elements to NA across an array

From: Huntsinger, Reid <reid_huntsinger_at_merck.com>
Date: Thu 28 Jul 2005 - 04:49:26 EST

It's easiest to reshape foo first:

d <- dim(foo)
dim(foo) <- c(d[1]*d[2],d[3])

m <- rowSums(is.na(foo))

and then assign

foo[m,] <- NA

and reshape

dim(foo) <- d

(Reshaping just makes the indexing easier).

Reid Huntsinger

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@mcmaster.ca> wrote:
> Dear Dr Carbon,
>
>
> > -----Original Message-----
> > From: r-help-bounces@stat.math.ethz.ch
> > [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Dr Carbon
> > Sent: Wednesday, July 27, 2005 12:19 PM
> > To: r-help@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@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > http://www.R-project.org/posting-guide.html
>
>

R-help@stat.math.ethz.ch mailing list