Utilisez le fichier de forme directement. Vous pouvez le faire facilement avec les packages rgdal
ou sf
, et lire la forme dans un objet. Pour les deux packages, vous devez fournir dsn
- la source de données, qui dans le cas d'un fichier de formes est le répertoire , et layer
- qui est le nom du fichier de formes, extension moins:
# Read SHAPEFILE.shp from the current working directory (".")
require(rgdal)
shape <- readOGR(dsn = ".", layer = "SHAPEFILE")
require(sf)
shape <- read_sf(dsn = ".", layer = "SHAPEFILE")
(Pour rgdal, dans OSX ou Linux vous ne pouvez pas utiliser le « ~ » un raccourci pour le répertoire comme source de données ( dsn
) annuaire - un message , sinon vous aurez une inutile « peut - source non de données ouvertes » Le. sf
Package ne fonctionne pas avoir cette limitation, entre autres avantages.)
Cela vous donnera un objet qui est un Spatial * DataFrame (points, lignes ou polygones) - les champs de la table attributaire vous sont alors accessibles de la même manière qu’un dataframe ordinaire, c’est- shape$ID
à- dire pour la colonne ID.
Si vous souhaitez utiliser le fichier ASCII que vous avez importé, vous devez simplement convertir les champs de texte (caractères) x et y en nombres, par exemple:
shape$x <- as.numeric(as.character(shape$x))
shape$y <- as.numeric(as.character(shape$y))
coordinates(shape) <- ~x + y
Edit 2015-01-18 : notez que rgdal est un peu meilleur que maptools (ce que j'avais initialement suggéré ici), principalement parce qu'il lit et écrit automatiquement les informations de projection.
Remarques:
- les
as.numeric(as.character())
fonctions imbriquées - si votre texte ASCII a été lu comme un facteur (probable), cela garantit que vous obtenez les valeurs numériques au lieu des niveaux de facteur.
rgdal
et sf
ont des moyens déroutants d’accéder à différents types de fichiers et de bases de données (par exemple, pour un fichier GPX, DSN est le nom du fichier, et couche les composants individuels tels que les points de cheminement, les points de suivi, etc.), et une lecture attentive des exemples en ligne est nécessaire.