2013-12-11 2 views
0

У меня есть вектор называется ew12, который выглядит как этотGrep функция R

2|7;27;0.878,0.888; 

Я отделено его с помощью команды сканирования и; как sep. То, что я тогда получаю

ew12 
[1] "2|7"  "27"  "0.878,0.888"  

Затем я хочу Grep на "2 | 7" шаблон и использовать

grep("^2|7$", ew12) 

что приводит к [1] 1 2 3

но шаблон не присутствует во всех трех элементах ..

Благодаря

+0

Каков ваш ожидаемый результат? –

ответ

1

Я думаю, что вы скучаете g скобки (если я правильно задаю вопрос).

Try: grep("^(2|7)$",ew12)

+0

, но theni GET INTEGER8 = 9 AS RESULT :: A ASCI OF | МОГУТ БЫТЬ ВАЖНЫМИ? – user3069326

+0

Можете ли вы перестроить свое предложение, пожалуйста? я не понимаю, что вы хотите передать? – PKumar

+0

oh..ups..Я просто получаю целое число (0) в результате, если я это сделаю. Мне было интересно, может быть, asci pipi в моих данных, а труба, которую я использую на клавиатуре, различна? – user3069326

2

Если вы хотите, чтобы соответствовать точной строке, вы должны использовать двойные побеги для бара, т.е. \\|:

grep("^2\\|7$", ew12) 
[1] 1 

Вы можете также использовать

which(ew12 == "2|7") 
[1] 1 
+0

какой текст вы получили из ... | исключение? – user3069326

+0

@ user3069326 Символ '|' означает логический * или * в регулярных выражениях. Если вам нужна буквальная интерпретация, вам нужно использовать два escape-файла, '\\ |'. Я узнал об этом на stackoverflow.com. –

+0

Вы также можете использовать аргумент 'fixed = TRUE' для' grep' и избегать экранов. – BenBarnes

Смежные вопросы