Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R: How to select files in directory which satisfy conditions both on the beginning and end of name?

I need to select files which start with "M" and end with ".csv". I can easily select files which start with "M" : list.files(pattern="^M"), or files which end with "csv": list.files(pattern = ".csv"). But how to select files which satisfy both conditions at the same time?

like image 822
Marina Avatar asked Feb 05 '14 18:02

Marina


2 Answers

You could try glob2rx

lf <- list.files("path_to_directory/", pattern=glob2rx("M*.csv"))

which translates to:

glob2rx("M*.csv")
[1] "^M.*\\.csv$"
like image 52
harkmug Avatar answered Oct 20 '22 17:10

harkmug


The pattern argument takes a regular expression:

list.files(pattern='^M.*csv')

To be more specific, your second expression:

list.files(pattern='.csv')

Is matching all files with the string csv preceded by any character. To be explicit and only match files with a .csv extension:

list.files(pattern='\\.csv$')
like image 36
Justin Avatar answered Oct 20 '22 17:10

Justin