Je souhaite lister tous les fichiers d'un répertoire répondant à certaines conditions (date et devise). Donc, avec une seule condition, l'argument pattern
dans list.files
fonctionne bien:
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern='20130801')
Pour plusieurs conditions, j'ai essayé:
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern=c('20130801','USD'))
Mais a eu le même résultat que le premier. Existe-t-il un moyen d'avoir plusieurs critères dans l'argument pattern
de list.files
?
Filter(function(x) grepl("USD", x), file.ls)
alternativement, vous pouvez construire une expression régulière pour le modèle qui ne correspond qu'aux noms de fichiers contenant les deux chaînes, mais c'est un jeu de sorcier.
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern="20130801|USD")
Conformément à Baptiste et à la réponse sur ce post ( argument de modèle list.files dans R, utilisation d'une expression régulière étendue ), vous pouvez utiliser l'expression suivante:
file.ls <- list.files(path='~/DATA/PiP/Curvas/',
pattern=glob2rx("*20130801*USD*"))
Où *
est le caractère générique.
C'est ici:
file.ls2 = intersect(list.files(pattern = "20130801"), list.files(pattern = "USD"))