Use o shapefile diretamente. Você pode fazer isso facilmente com os pacotes rgdalou sfe ler a forma em um objeto. Para ambos os pacotes, você precisa fornecer dsn- a fonte de dados, que no caso de um shapefile é o diretório , e layer- qual é o nome do shapefile, menos a extensão:
# 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, no OSX ou Linux, você não pode usar a abreviação '~' para o diretório inicial como o diretório da fonte de dados ( dsn) - caso contrário, receberá uma mensagem inútil "Não é possível abrir a fonte de dados". O sfpacote não tenha essa limitação, entre outras vantagens.)
Isso fornecerá um objeto que é um DataFrame * espacial (pontos, linhas ou polígonos) - os campos da tabela de atributos são acessíveis a você da mesma maneira que um quadro de dados comum, ou seja, shape$IDpara a coluna ID.
Se você deseja usar o arquivo ASCII importado, basta converter os campos x e y de texto (caractere) em números, por exemplo:
shape$x <- as.numeric(as.character(shape$x))
shape$y <- as.numeric(as.character(shape$y))
coordinates(shape) <- ~x + y
Editar 18/01/2015 : observe que o rgdal é um pouco melhor que o maptools (o que sugeri aqui inicialmente), principalmente porque ele lê e grava informações de projeção automaticamente.
Notas:
- os aninhados
as.numeric(as.character())funções - se o seu texto ASCII foi lido como um fator (provável), isso garante que você obtenha os valores numéricos, em vez dos níveis de fator.
rgdale sfpossui maneiras confusas de acessar diferentes tipos de arquivos e bancos de dados (por exemplo, para um arquivo GPX, o dsn é o nome do arquivo e coloca em camadas os componentes individuais, como waypoints, trackpoints, etc.), e é necessária uma leitura cuidadosa dos exemplos on-line.