2016-04-27 3 views
-1

Я читаю строки в Rв R как фильтровать строки, содержащие подстроку?

lines = readLines("mylog.log") 

Как я могу отфильтровать и получить только строки, содержащие Controller?

Я пытался что-то вроде:

filter[grep("Controller")] 

, но я получаю:

argument "pattern" is missing, with no default 

Итак:

lines[grep(pattern="Controller")] 

, но затем получить:

argument "x" is missing, with no default 

но x - это сама линия, что мне не хватает? Я хочу указать только шаблон!

+2

Что такое результирующий объект? Data.frame? Символьный вектор? Проверьте '? Grep', но, короче говоря,' grep (pattern = "Controller", x = lines) 'может вас запустить. –

+1

@ RomanLuštrik отлично, тогда с 'lines [c (grep (pattern =" Controller ", x = lines))]' Я мог бы вернуть отфильтрованные строки! – Jas

+1

'grep' принимает 2 аргумента. Шаблон, который вы хотите обнаружить, и строку, в которой вы хотите найти этот шаблон. – Sotos

ответ

1

Вы пропускаете аргумент, к которому применяются регулярные выражения, lines.

grep(pattern = "Controller", x = lines) 

Это приводит к вектору индексов, где появляется Controller, которые вы можете использовать для подмножества.

1

grep функция принимает в качестве аргументов (pattern, x, ...) «Controller», как patern аргумента должно быть достаточно, но затем указать, какая строка должна функция заглянуть в, например line[0]

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