[R-sig-Geo] masking z values (extract or subset on a 3-d array)

Roger Bivand Roger.Bivand at nhh.no
Sat May 27 01:07:10 CEST 2006


On Fri, 26 May 2006, Andy Bunn wrote:

> This is driving me nuts. I have a 3-D array that holds x,y,z coordinates
> from multiple experiments. I need to clean the data before making it sp
> objects. I want to set all z-values < 0 to 0. In a 2-D matrix this is
> trivial e.g., x[,x[1,]<0] <- 0. But I'm stumped on how to do this on a 3-D
> array without a loop. Given an array:
> 
>   foo <- array(rnorm(24), dim=c(4,3,2))
>   dimnames(foo) <- list(NULL,c('x','y','z'),c('Experiment1','Experiment2'))
>   foo[,'z',]
> 
> How can I set foo[,'z',]<0 to 0?

a <- array(rnorm(64), c(4,4,4))
inds <- which(a < 0, arr.ind=TRUE)
a[inds] <- 0

should do it.

Roger

> 
> 
> Thanks, Andy
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list