[R] Must be obvious but not to me : problem with regular expression
Uwe Ligges
ligges at statistik.uni-dortmund.de
Mon Dec 17 16:01:10 CET 2007
Ptit_Bleu wrote:
> Hi,
>
> I have a vector called nfichiers of 138 names of file whose extension is .P0
> or P1 ... to P8.
> The script is not the same when the extension is P0 or P(1 to 8).
>
> Examples of file names :
> [128] "Output0.P0"
> [129] "Output0.P1"
> [130] "Output0.P2"
> [131] "Output01102007.P0"
> [132] "Output01102007.P1"
> [133] "Output01102007.P2"
> [134] "Output01102007.P3"
> [135] "Output01102007.P4"
>
>
> To extract the names of file with .P0 extension I wrote :
> nfichiers[grep(".P0", nfichiers)]
> For the other extensions :
> nfichiers[grep(".P[^0]", nfichiers)]
>
> But for the last, I get a length of 138 that is the length of the initial
> vector although I have 130 files with .P0 extension.
>
> So I tried "manually" with a small vector :
>> s
> [1] "aa.P0" "bb.P0" "cc.P1" "dd.P2"
>> s[grep(".P[^0]", s)]
> [1] "cc.P1" "dd.P2"
I guess you want
grep("\\.P0$", nfichiers)
Otherwise you get "XP0X" as a positive as well.
And for the others:
grep("\\.P[^0]$", nfichiers)
with ".P[^0]", you'd get "XPXX" as positive, for example...
because you are looking for something that contains a P that is preceded
by any character and followed by some non-zero character.
Uwe Ligges
> It works !!!
>
> Has someone an idea to solve this small problem ?
> Thanks in advance,
> Ptit Bleu.
>
>
More information about the R-help
mailing list