[R] setting elements to NA across an array

Huntsinger, Reid reid_huntsinger at merck.com
Wed Jul 27 20:49:26 CEST 2005


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


-----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 1:45 PM
To: John Fox
Cc: r-help at r-project.org
Subject: Re: [R] setting elements to NA across an array


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
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> 
>

______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html




More information about the R-help mailing list