web-dev-qa-db-fra.com

Fichiers de liste R avec plusieurs conditions

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?

27
capm
 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.

4
baptiste
file.ls <- list.files(path='~/DATA/PiP/Curvas/',pattern="20130801|USD")
19
Metrics

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*"))

* est le caractère générique.

11
Dendrobates

C'est ici:

file.ls2 = intersect(list.files(pattern = "20130801"), list.files(pattern = "USD"))
3
Karabirupa Dutta