[R-sig-Geo] Looking for an R package for focal statistics, (moving window) within a 3D neighborhood

Gareth Davies grothered at gmail.com
Wed Sep 2 14:48:03 CEST 2015


Hi Jose,

If you end up writing your own function for this sort of thing, I'd 
advise you consider whether data.frames are the right data structure to 
use -- since they have a very high speed penalty for row-wise operations 
like what you are talking about. If all your attributes are of the same 
data type, it is much faster to use a matrix. For example, compare the 
speed of these:

x = data.frame(a = runif(1e+06), b=runif(1e+06), c=runif(1e+06))
# Simulate row-wise access and replacement
# This is slow since 'x' is a data.frame
for(i in 1:1000) x[i,] = runif(3)

# This is equivalent to above, but much faster since it uses a matrix
x = matrix(runif(3e+06), ncol=3)
for(i in 1:1000) x[i,] = runif(3)

If your data is not all of the same type, then you can't use a matrix. 
In that case you might want to experiment with using e.g. a list of 
vectors and operating on each independently, or maybe have a look at the 
data.table package [though I am less well versed with this].

Cheers,
Gareth.



More information about the R-sig-Geo mailing list