Dear Dr Carbon,

Actually, it appears that I'm the one who was being obtuse. To make sure
that I'm now interpreting what you want correctly, you'd like to set all
entries in a layer to NA if any entry in a layer is NA.  If that's correct,
then how about the following?

foo[array(apply(foo, c(1,2), function(x) any(is.na(x))), dim(foo))] <- NA

Regards,
 John

--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
-------------------------------- 

> -----Original Message-----
> From: Dr Carbon [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, July 27, 2005 12:45 PM
> To: John Fox
> Cc: [EMAIL PROTECTED]
> 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 <[EMAIL PROTECTED]> wrote:
> > Dear Dr Carbon,
> > 
> > 
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] 
> > > [mailto:[EMAIL PROTECTED] On Behalf Of Dr Carbon
> > > Sent: Wednesday, July 27, 2005 12:19 PM
> > > To: [EMAIL PROTECTED]
> > > 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
> > > PLEASE do read the posting guide!
> > > http://www.R-project.org/posting-guide.html
> > 
> >

______________________________________________
R-help@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

Reply via email to