[R] lapply and SpatialGridDataFrame error

Roger Bivand Roger.bivand at nhh.no
Mon Jan 28 12:49:47 CET 2013


Irucka Embry <iruckaE <at> mail2world.com> writes:

> 
> Hi all, I have a set of 54 files that I need to convert from ASCII grid
> format to .shp files to .bnd files for BayesX.
> 
> I have the following R code to operate on those files:
> 
> library(maptools)
> library(Grid2Polygons)
> library(BayesX)
> library(BayesXsrc)
> library(R2BayesX)
> 
> readfunct <- function(x)
> {
> u <- readAsciiGrid(x)
> }
> 
> modfilesmore <- paste0("MaxFloodDepth_", 1:54, ".txt")
> modeldepthsmore <- lapply(modfilesmore, readfunct)
> 
> maxdepth.plys <- lapply(modeldepthsmore, Grid2Polygons(modeldepthsmore,
> level = FALSE))
> 
...
> 
> This is the error message that I receive:
> > maxdepth.plys <- lapply(modeldepthsmore,
> Grid2Polygons(modeldepthsmore, level = FALSE))
> Error in Grid2Polygons(modeldepthsmore, level = FALSE) : Grid object not
> of class SpatialGridDataFrame
> 
> Can someone assist me in modifying the R code so that I can convert the
> set of files to .shp files and then to .bnd files for BayesX?

You also posted on R-sig-geo a few hours after posting here - certainly a more
relevant choice of list, but you are rather impatient.

I'm assuming that you have read up on how lapply() works, and realised what is
wrong with your understanding. But just in case, 

> maxdepth.plys <- lapply(modeldepthsmore, Grid2Polygons(modeldepthsmore,
> level = FALSE))

does not pass the list component from modeldepthsmore anywhere, but tries to run
Grid2Polygons on the whole list. Something like (untried):

maxdepth.plys <- lapply(modeldepthsmore, function(x) Grid2Polygons(x, level =
FALSE))

should do that. Please summarise to R-sig-geo.

Roger


> 
> Thank-you.
> 
> Irucka Embry 
>



More information about the R-help mailing list