167 votes

Utiliser R pour lister tous les fichiers avec une extension spécifiée

Je suis très nouveau sur R et je travaille à mettre à jour un script R pour itérer à travers une série de tables .dbf créées à l'aide d'ArcGIS et produire une série de graphiques.

J'ai un répertoire, C:\Scratch, qui contiendra tous mes fichiers .dbf. Cependant, lorsque ArcGIS crée ces tables, il inclut également un fichier .dbf.xml. Je veux supprimer ces fichiers .dbf.xml de ma liste de fichiers et donc de mon itération. J'ai essayé de chercher et d'expérimenter avec des expressions régulières en vain. Voici l'expression de base que j'utilise (en excluant toutes les expérimentations variées) :

files <- list.files(pattern = "dbf")

Quelqu'un peut-il me donner une direction?

2 votes

Si vous avez du mal avec les regexps mais connaissez le motif de joker, la fonction glob2rx() est souvent utile.

0 votes

Est-ce juste moi ou le titre est trompeur: devrait être "avec seulement une extension particulière" (mais je ne trouve pas de réponse sur SO pour exclure certaines extensions non plus)

0 votes

Caracal, merci pour la suggestion. jonw, je suppose que j'aurais pu le formuler de manière plus concise, j'essayais juste de le poster avant une réunion.

3voto

dipetkov Points 1816

Une autre option est la fonction fs::dir_ls. Elle permet de rechercher avec un motif de type joker (comme "*.dbf") ou avec un motif regex comme "dbf$".

fs::dir_ls(dir, recurse = FALSE, glob = "*.dbf")
fs::dir_ls(dir, recurse = FALSE, regex = "dbf$")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X