Еще один пример, который действительно является вариантом другого ответа , поскольку он также использует словарь:
>>> vr={}
... for num in range(1,4):
... vr[str(num)] = 5 + num
...
>>> print vr["3"]
8
>>>
Вы можете использовать команду escape \\
в grep
:
dataset[grep('^(B\\-|B\\^)[^B\\-|B\\^]*, dataset$Col1),]
Для дальнейшего объяснения, ^
соответствует началу строки в качестве якоря, поэтому вы должны экранировать его в середине строки. []
- это класс символов, поэтому [^B-|B^]*
соответствует любому символу, который не является B, -, B или ^. Они здесь не нужны.
Упрощенное регулярное выражение: dataset[grep('^(B-|B\\^)', dataset$Col1),]