2014-12-17 26 views
6

Bazı projelerde (g) (perl=TRUE bayrağını kullanan) grep kullanıyorum ve hayatım boyunca R'nin neden hata attığını anlayamıyorum. şöyle Benim sorgu şudur: ters eğik çizgi r bir kez daha kaçmayı gerek"' w' tanınmayan bir kaçış" grep içinde

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

Denediniz mi: '\\ w'? – anubhava

+0

@anubhava Hayır, ama neden gerekli? Daha kaçmadı mı? –

+5

Bu, düzenli tırnak çift tırnak içinde dize olarak giriliyor olmasıdır. Dize, bir kaçan ve regex motorunun başka bir kaçış gereksinimine ihtiyacı var. Örneğin. '\\ w', regex motoruna \ \ w' olarak aktarıldı – anubhava

cevap

11

:

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

Ancak R aşağıdaki hatayı atar.

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

               |  |