2017-01-26 21 views
1

Я использую R для анализа данных, и у меня есть строковая переменная, которая перечисляет порядок, в котором меры были введены в опросе. Здесь переменная строка для одного респондента:Используйте grepl (R), чтобы найти, какое выражение появляется первым в строке?

"pimgrwelcomerealstartnamelessTaskinstruct_itemshealth_itemsinstruct_selfsexp_instiat_esteemdebriefing1lastpage" 

Есть ли какой-нибудь способ, которым я могу использовать «grepl», чтобы проверить порядок этих мер? Например, могу ли я увидеть, произошло ли в строке «health_items» раньше в строке, чем «instruction_self» (что верно в строке выше)? Если это так, я хотел бы создать фиктивную переменную, чтобы я мог тестировать эффекты порядка.

Спасибо всем.

ответ

2

Я не пишу это как ответ, но только, чтобы разделить мои мысли по этой проблеме: Надежда кто-то помогает с grepl

Вы можете извлечь расположение подстроки, используя 2 способа, которые можно использовать, чтобы проверить, первая строка пришла впереди второй:

regexpr("health_items", s). #where s is your string 
# or 
library(stringr) 
str_locate(s, "health_items") 

Так, чтобы узнать, который пришел первым:

sapply(c("health_items", "instruct_self"), function(x) str_locate(s, x)) 
# this should return a vector with the start index. 
+1

Хотя не используя grepl, это решение решает проблему совершенно d следует рассматривать как ответ на проблему. – user2917781

+0

@ joel.wilson yep - это сработало хорошо! – user2917781

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

  • Нет связанных вопросов^_^