使用 grepl (R) 查找字符串中哪个表达式排在第一位?

Use grepl (R) to find which expression comes first in a string?

我正在使用 R 进行数据分析,并且我有一个字符串变量,它列出了在调查中执行措施的顺序。这是一位受访者的字符串变量:

"pimgrwelcomerealstartnamelessTaskinstruct_itemshealth_itemsinstruct_selfsexp_instiat_esteemdebriefing1lastpage"

有什么方法可以使用 "grepl" 来测试这些度量的顺序吗?例如,我是否可以查看 "health_items" 在字符串中是否早于 "instruct_self"(在上面的字符串中为真)?如果是这样,我想创建一个虚拟变量,以便测试订单效果。

谢谢大家

我写这篇文章不是为了回答,而是为了分享我对这个问题的看法:希望有人能帮助 grepl

您可以使用两种方法提取子字符串的位置,这两种方法可用于检查第一个字符串是否在第二个之前:

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.