Use el archivo de forma directamente. Puede hacerlo fácilmente con los paquetes rgdal
o sf
, y leer la forma en un objeto. Para ambos paquetes debe proporcionar dsn
: la fuente de datos, que en el caso de un shapefile es el directorio , y layer
- cuál es el nombre del shapefile, menos la extensión:
# Read SHAPEFILE.shp from the current working directory (".")
require(rgdal)
shape <- readOGR(dsn = ".", layer = "SHAPEFILE")
require(sf)
shape <- read_sf(dsn = ".", layer = "SHAPEFILE")
(Para rgdal, en OSX o Linux no puede usar la abreviatura '~' para el directorio de inicio como el directorio de origen de datos ( dsn
); de lo contrario, recibirá un mensaje inútil "No se puede abrir el origen de datos". El sf
paquete no tener esta limitación, entre otras ventajas).
Esto le dará un objeto que es un Marco de Datos Espacial * (puntos, líneas o polígonos): los campos de la tabla de atributos son accesibles para usted de la misma manera que un marco de datos ordinario, es decir, shape$ID
para la columna ID.
Si desea utilizar el archivo ASCII que importó, simplemente debe convertir los campos de texto (caracteres) xey en números, por ejemplo:
shape$x <- as.numeric(as.character(shape$x))
shape$y <- as.numeric(as.character(shape$y))
coordinates(shape) <- ~x + y
Editar 2015-01-18 : tenga en cuenta que rgdal es un poco mejor que maptools (que inicialmente sugerí aquí), principalmente porque lee y escribe información de proyección automáticamente.
Notas:
- las
as.numeric(as.character())
funciones anidadas : si su texto ASCII se leyó como un factor (probablemente), esto garantiza que obtenga los valores numéricos en lugar de los niveles de los factores.
rgdal
y sf
tiene formas confusas de acceder a diferentes tipos de archivos y bases de datos (por ejemplo, para un archivo GPX, el dsn es el nombre del archivo y pone en capas los componentes individuales como waypoints, trackpoints, etc.), y se necesita una lectura cuidadosa de ejemplos en línea.