2014-12-17 8 views
6

Sto usando grep in alcuni progetti in R (che usa un flag perl=TRUE) e per la vita di me non riesco a capire perché R continua a lanciare errori. La mia domanda è la seguente:"' w' è una fuga non riconosciuta" in gre

d$SomeColumn[grep("(?ix)<VNW[^;]*;(dis|dat)> \w*<N\(", d$Right, perl=TRUE)] <- 1 

Tuttavia, R tiri il seguente errore:

Error: '\w' is an unrecognized escape in character string starting ""<VNW[^;]*;(dis|dat)> \w" 
+1

Hai provato: '\\ w'? – anubhava

+0

@anubhava No, ma perché è necessario? Non è ancora sfuggito? –

+5

È perché la regex viene immessa come stringa tra virgolette. La stringa ha bisogno di un escaping e il motore regex ha bisogno di un'altra escaping. per esempio. '\\ w' è passato a regex engine come' \ w' – anubhava

risposta

11

Hai bisogno di fuggire i backslash uno più tempo in r.

d$SomeColumn[grep("(?ix)<VNW[^;]*;(dis|dat)> \\w*<N\\(", d$Right, perl=TRUE)] <- 1 

               |  | 
Problemi correlati