Использование grep для фильтрации строк с двумя или более шаблонами в строке в R

Еще один пример, который действительно является вариантом другого ответа , поскольку он также использует словарь:

>>> vr={} 
... for num in range(1,4): 
...     vr[str(num)] = 5 + num
...     
>>> print vr["3"]
8
>>> 

1
задан jay.sf 18 March 2019 в 18:32
поделиться

2 ответа

Вы можете использовать команду escape \\ в grep:

dataset[grep('^(B\\-|B\\^)[^B\\-|B\\^]*, dataset$Col1),]
0
ответ дан Dave Gruenewald 18 March 2019 в 18:32
поделиться

Для дальнейшего объяснения, ^ соответствует началу строки в качестве якоря, поэтому вы должны экранировать его в середине строки. [] - это класс символов, поэтому [^B-|B^]* соответствует любому символу, который не является B, -, B или ^. Они здесь не нужны.

Упрощенное регулярное выражение: dataset[grep('^(B-|B\\^)', dataset$Col1),]

0
ответ дан CT Hall 18 March 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: