2015-08-17 2 views
0

У меня есть файл csv, который я хочу извлечь только временную метку предложений, которые содержат в себе плюс имя плода в этом предложении. Как я могу это сделать в R (или, если есть более быстрый способ сделать это, что это?)Очистка данных в R

rosbagTimestamp,data 
1438293900729698553,robot is in motion toward [strawberry] 
1438293900730571638,Found a plan for avocado in 1.36400008202 seconds 
1438293900731434815,current probability is greater than EXECUTION_THRESHOLD 
1438293900731554567,ready to execute am original plan of len = 33 
1438293900731586463,len of sub plan 1 = 24 
1438293900731633713,len of sub plan 2 = 9 
1438293900732910799,put in an execution request; now updating the dict 
1438293900732949576,current_prediciton_item = avocado 
1438293900733070339,current_item_probability = 0.880086981207 
1438293901677787230,current probability is greater than PLANNING_THRESHOLD 
1438293901681590725,robot is in motion toward [avocado] 
1438293902689233770,we have received verbal request [avocado] 
1438293902689314002,we already have a plan for the verbal request 
1438293902689377800,debug 
1438293902690529516,put in the final motion request 
1438293902691076051,Found a plan for avocado in 1.95595788956 seconds 
1438293902691084147,current predicted item != motion target; calc a new plan 
1438293902691110642,current probability is greater than EXECUTION_THRESHOLD 
1438293902691885974,have existing requests 
1438293904496769068,robot is in motion toward [avocado] 
1438293907737142498,ready to pick up the item 

В идеале я хочу выход быть что-то вроде этого:

1438293900729698553, strawberry 
1438293901681590725, avocado 
1438293904496769068, avocado 

Таким образом, очевидно, я должны использовать subset в grep для R, но я не совсем уверен, как это сделать!

+1

У вас есть вектор или другой объект, который содержит имена фруктов, которые вы хотите, чтобы ваш код распознавал? – ulfelder

+0

@ulfelder У меня нет вектора, но да, я знаю, что их всего 15, поэтому они ограничены. Как это поможет? –

+1

Если вы собираетесь попросить код искать что-то в этих строках, вам нужно сказать ему, что искать. Если только название фрукта не приходит сразу после слова «в сторону» или это единственное, что когда-либо появляется в скобках, и в этом случае вы должны уклоняться от этой проблемы. Является ли хотя бы одно из этих условий истинным? – ulfelder

ответ

5
stamps <- df$rosbagTimestamp[grep("toward \\[", df$data)] 
fruits <- gsub(".*\\[(\\w+)\\].*", "\\1", df$data[grep("toward \\[", df$data)]) 
data.frame(stamps,fruits) 
       stamps  fruits 
1 1438293900729698560 strawberry 
2 1438293901681590784 avocado 
3 1438293904496769024 avocado 

Я использовал рисунок "toward \\[", чтобы найти фрукты. Если какие-либо изменения происходят в изменчивости, их можно расширить. Переменная stamps создается путем размещения временных меток, имеющих шаблон в столбце данных. Переменная fruits изолирует фрукты внутри скобок.

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