[R] finding files whose name does NOT contain a given character

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Tue Feb 2 16:18:28 CET 2010

mauede at alice.it wrote:
> Unluckily I dela with miRNA files whose name may contain the character "*".
> Because of the special meaning of "*" I have to remove it.
> I found out how to make list.files() extract only those file names which contain a "*"
> Namely:
> # list.files(pattern="\\*") 
> Now I have to process all files whose name does NOT contain the character "*".
> I cannot have list.files() extract all files  whose name does NOT match pattern="\\*
> I tried using "^" in such a pattern but nothing is returned.
> Any suggestion is welcome.

That'll be something like pattern="^[^*]*$" (untested, I don't think I
have any filenames with "*" inside...)

Alternatively, you might try

allfiles <- list.files()
withstar <- allfiles[grepl("\\*", allfiles)]
nostar <- allfiles[!grepl("\\*", allfiles)]

   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907

More information about the R-help mailing list