2017-03-14 3 views
-1

j'ai un dossier avec une variété de fichiers de formes comme celles-ci:choisir shapefiles spécifiques pour l'entrée

  • 1965_120m.shp,
  • 1967_120m.shp,
  • 1968_120m.shp,
  • 1965_50m.shp ,
  • 1967_50m.shp,
  • 1968_50m.shp,
  • 1965_10m.shp,
  • 1967_10m.shp,
  • 1968_10m.shp

(Les données sur le dossier sont beaucoup plus ce qui est juste un exemple), donc je me bats pour trouver un moyen de sélectionner tous les fichiers de formes de 50 mètres à partir de ce dossier.

Avez-vous une idée?

+0

S'agit-il de la sélection de fichiers en fonction de leur nom, si c'est "50m" ou non? Comment cela doit-il être fait? Utiliser une interface graphique en utilisant choose.files? Vous devez fournir plus de contexte. – parvus

Répondre

0

Sans un exemple reproductible, il sera difficile de fournir une solution complète, mais ...

filenames <- list.files(path=".", pattern="50m.shp", ignore.case = TRUE, recursive = FALSE, include.dirs = FALSE) 

devriez-vous obtenir vos fichiers et ...

for(f in filenames){ 
#do stuff with each file (f) such as mySHP <- readOGR(... layer = file_path_sans_ext(f)) 
} 

fera vos affaires avec chaque fichier à tour de rôle

0

Cela semble être ce que je cherchais, mais ce que je ne comprends pas est l'entrée sur la couche .... Le chemin du fichier suppose d'être la première entrée de la fonction readOGR. C'est votre script adapté à mes besoins et quelques autres détails pour aider ...

+0

'mySHP <- readOGR ('.', Layer = chemin_fichier_sans_ext (shp))' devrait le faire puisque vous avez déjà défini votre répertoire de travail. Réalisez qu'il s'agit d'une boucle et que vous avez besoin de faire votre traitement et d'enregistrer la sortie dans la boucle, sinon cela ouvrira chaque fichier à tour de rôle et écrasera mySHP. –

+0

Pour ouvrir (par exemple) le premier fichier de la liste, utilisez: 'mySHP <- readOGR ('.', Layer = file_path_sans_ext (shps [1]))' et PAS dans le 'for (shp in shps) {} 'boucle. –

+0

Pour enregistrer la sortie, dois-je utiliser une fonction comme assign/sapply/lapply dans la boucle? (tant que mon objectif est d'utiliser les shapefiles sélectionnés pour faire une brique) – Penelope